home *** CD-ROM | disk | FTP | other *** search
/ 3D Games (Spidla) / 3dhry1.iso / Duke...It's ZeroHour 1.4 / zerohour.exe / zerpgame.con < prev    next >
Encoding:
Text File  |  1997-04-30  |  91.6 KB  |  4,078 lines

  1.  
  2. /*
  3. --------------------------------------------------------------------------------
  4. Duke Nukem 3D GAME.CON file.
  5. By Todd Replogle
  6. (c) 1996 3D Realms Entertainment
  7. --------------------------------------------------------------------------------
  8.  
  9.  
  10. IMPORTANT NOTICE IF YOU USE MODIFIED .CON FILES
  11.  
  12. If you are playing a MULTIPLAY game (Dukematch or Co-op) and you are
  13. using *modified* .CON files (USER.CON, GAME.CON, DEFS.CON), then each
  14. multiplayer must be using the EXACT SAME .CON files, or the game will
  15. get out of sync and/or develop interesting problems.
  16.  
  17. 3D Realms encourages you to experiment freely with the parameters
  18. contained in this file, and to share your discoveries with the rest
  19. of the world.  However, BE ADVISED that 3D Realms does NOT offer 
  20. any technical support on how to use this file or other user-modifiable 
  21. features of this game.  Do NOT call 3D Realms or Apogee Software 
  22. for advice or help with this subject.  
  23.  
  24. You make modifications to this and other files at your own risk. 
  25. It is recommended that you first make a backup copy of this, or
  26. any .CON files before making any changes.
  27.  
  28. --------------------------------------------------------------------------------
  29.  
  30. */
  31.  
  32. include ZERPDEFS.CON
  33. include ZERPUSER.CON
  34.  
  35.  
  36. state genericshrunkcode
  37.     ifcount 32 { ifpdistl SQUISHABLEDISTANCE pstomp }
  38.     else { sizeto 9 8 spawn FRAMEEFFECT1 }
  39. ends
  40.  
  41. move SHUTTLEVELS 16
  42.  
  43. actor SPACESHUTTLE TOUGH
  44.   //  ifmove 0 { move SHUTTLEVELS getv geth }
  45. enda
  46.  
  47. actor SATELLITE TOUGH
  48.   //  ifmove 0 { move SHUTTLEVELS getv geth }
  49.   //  ifcount 120 move SHUTTLEVELS getv geth randomangle
  50. enda
  51.  
  52.  
  53.  
  54. // *********************
  55. // **** HOMING MINE ****
  56. // *********************
  57.  
  58.  
  59. action AMINERUN         0   2   1   1   15    
  60.  
  61. move MINEVEL 250
  62. move MINESTOP
  63.  
  64. ai AIMINERUN AMINERUN MINEVEL seekplayer
  65. ai AIMINESEARCH AMINERUN MINEVEL randomangle
  66.  
  67. state checkminehitstate
  68.     ifdead
  69.         {
  70.         ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  71.         debris SCRAP3 3
  72.           spawn EXPLOSION2
  73.            sound RPG_EXPLODE
  74.             hitradius 2048 10 15 20 25
  75.             killit
  76.         ifwasweapon FREEZEBLAST { spawn BURNING }
  77.         }
  78.     else
  79.     {
  80.     ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  81.     ifrnd 100
  82.         { sound PISTOL_RICOCHET }
  83.     else
  84.         { sound PISTOL_BODYHIT }
  85.     debris SCRAP2 1
  86.     }
  87. ends
  88.  
  89. actor SHARK 5 fall
  90. ifai 0 { ai AIMINERUN }
  91. sizeto 30 30
  92. soundonce DRON_ROAM
  93. ifcansee
  94.     {
  95.     ifpdistl 950
  96.         {
  97.           debris SCRAP3 3
  98.           spawn EXPLOSION2
  99.            sound RPG_EXPLODE
  100.             hitradius 2048 10 15 20 25
  101.             killit
  102.         }
  103.     }
  104. else
  105. ifai AIMINERUN
  106.     {
  107.     soundonce SOMETHINGFROZE
  108.     }
  109.  
  110. ifhitweapon { state checkminehitstate }
  111. enda
  112.  
  113.  
  114.  
  115. action BLIMPWAITTORESPAWN
  116.  
  117. state blimphitstate
  118.     cstat 0
  119.     spawn FIRSTGUNSPRITE
  120.     spawn EXPLOSION2
  121.  
  122.     debris SCRAP1 40            // Weapons and ammo!
  123.     debris SCRAP2 32
  124.     debris SCRAP3 32
  125.     debris SCRAP4 32
  126.     debris SCRAP5 32
  127.  
  128.     sound PIPEBOMB_EXPLODE
  129.     ifrespawn { action BLIMPRESPAWNTIME move 0 cstat 32768 }
  130.     else killit
  131. ends
  132.  
  133. actor BLIMP 1
  134.  
  135.     ifaction BLIMPWAITTORESPAWN
  136.     {
  137.         ifcount RESPAWNACTORTIME
  138.         {
  139.             action 0
  140.             cstat 0
  141.             move 0
  142.         }
  143.         break
  144.     }
  145.  
  146.     ifhitweapon
  147.     {
  148.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  149.         ifwasweapon RADIUSEXPLOSION state blimphitstate
  150.         ifwasweapon RPG state blimphitstate
  151.         strength 1
  152.     }
  153. enda
  154.  
  155.  
  156.  
  157. state rats
  158.     ifrnd 128 spawn RAT
  159.     ifrnd 128 spawn RAT
  160.     ifrnd 128 spawn RAT
  161.     ifrnd 128 spawn RAT
  162.     ifrnd 128 spawn RAT
  163.     ifrnd 128 spawn RAT
  164.     ifrnd 128 spawn RAT
  165.     ifrnd 128 spawn RAT
  166. ends
  167.  
  168. move RESPAWN_ACTOR_FLAG
  169.  
  170. action RUBCANDENT 1 1 1 1 1
  171. action RUBCAN
  172.  
  173. actor RUBBERCAN WEAK
  174.     ifaction RUBCANDENT { ifactioncount 16 { strength 0 action RUBCAN break } }
  175.     else ifhitweapon
  176.     {
  177.         ifwasweapon RADIUSEXPLOSION { state rats ifrnd 48 spawn BURNING debris SCRAP3 12 killit }
  178.         else action RUBCANDENT
  179.     }
  180. enda
  181.  
  182. state headhitstate
  183. // Unrem the following line to involving screen tilting during
  184. // low player hitpoint damage.
  185.  
  186.  
  187. wackplayer
  188.  
  189.  
  190. ends
  191.  
  192.  
  193.  
  194.  
  195. actor FREEZEBLAST 1000
  196. ifpdistl 1000 { spawn BURNING addphealth 15 }
  197. enda
  198.  
  199.  
  200. action ARECON  0 2   1   1   5
  201.  
  202. actor RECON 0 ARECON
  203.     ifcount 1000 { killit }
  204. enda
  205.  
  206.  
  207.  
  208.  
  209.  
  210. action APIGCOPDIVE 0  1  1   1   1
  211.  
  212. move SHAFTVELS 700
  213.  
  214. ai AISHAFT APIGCOPDIVE SHAFTVELS randomangle
  215.  
  216. actor PIGCOPDIVE 10 
  217. ifai 0 { ai AISHAFT }
  218. ifrnd 64 { soundonce ENDSEQVOL2SND6 }
  219. ifcount 100 { killit }
  220. cstat 257
  221. ifpdistl 1000 { soundonce ENDSEQVOL2SND7 palfrom 16 32 wackplayer addphealth -5 }
  222. enda
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230. action EXPBARRELFRAME         0   2   1   1   15
  231. actor EXPLODINGBARREL 26
  232.     fall
  233.     ifaction EXPBARRELFRAME
  234.     {
  235.         ifactioncount 2
  236.         {
  237.             hitradius 1024 WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  238.             spawn EXPLOSION2
  239.             debris SCRAP2 2
  240.             sound PIPEBOMB_EXPLODE
  241.             killit
  242.         }
  243.         break
  244.     }
  245.     ifsquished
  246.     {
  247.         debris SCRAP1 5
  248.         killit
  249.         break
  250.     }
  251.     ifhitweapon
  252.         {
  253.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  254.             action EXPBARRELFRAME
  255.         }
  256. enda
  257.  
  258. action BURNING_FLAME    0   12   1   1   2
  259. move BURNING_VELS 
  260.  
  261. state burningstate
  262.  
  263. ifgapzl 16 break
  264.  
  265.     
  266. ifspawnedby ROTATEGUN { sizeto 32 32 ifcount 356 { spawn SMALLSMOKE killit }  }
  267. else
  268. {
  269.     ifspawnedby LIZMAN
  270.         {
  271.         sizeto 40 40
  272.         ifinwater killit
  273.         ifonwater killit
  274.         ifpdistl 1200 { ifrnd 8 { ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -5 palfrom 24 16 } } }
  275.         soundonce FLESH_BURNING
  276.         ifcount 256    { sizeto 20 20 }
  277.         ifcount 512    { sizeto 10 10 }
  278.         ifcount 650    { killit }
  279.         }
  280.     ifspawnedby BOX { sizeto 32 32 ifcount 32 { spawn SMALLSMOKE killit } }
  281.     else
  282.         {
  283.         ifspawnedby APLAYER
  284.             {
  285.             sizeto 40 40
  286.             ifinwater killit
  287.             ifonwater killit
  288.             ifpdistl 1200 { ifrnd 8 { ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -5 palfrom 24 16 } } }
  289.             soundonce FLESH_BURNING
  290.             ifcount 100 { spawn SMALLSMOKE killit }
  291.             }
  292.         else
  293.             {
  294.             sizeto 96 96
  295.             ifinwater killit
  296.             ifonwater killit
  297.             ifpdistl 1200 { ifrnd 8 { ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -5 palfrom 24 16 } } }
  298.             soundonce FLESH_BURNING
  299.  
  300.             ifcount 256 { sizeto 40 40 }
  301.             ifcount 512    { sizeto 20 20 }
  302.             ifcount 650    { sizeto 10 10 }
  303.             ifcount 750    { killit }
  304.             }
  305.         }
  306. }
  307.  
  308. ends
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315. actor BURNING WEAK BURNING_FLAME
  316.     state burningstate
  317. enda
  318.  
  319. actor BURNING2 WEAK BURNING_FLAME
  320.     state burningstate
  321. enda
  322.  
  323. action TOILETWATERFRAMES 0 4 1 1 1
  324. actor TOILETWATER 0 TOILETWATERFRAMES
  325.     ifpdistl 8192
  326.     {
  327.         soundonce WATER_GURGLE
  328.         ifspawnedby TOILET sizeto 34 34
  329.         else
  330.         {
  331.             ifspawnedby WATERFOUNTAINBROKE
  332.                 sizeto 6 15
  333.             else ifspawnedby TOILETWATER { } else sizeto 24 32
  334.         }
  335.  
  336.         ifp palive ifpdistl RETRIEVEDISTANCE ifp pfacing ifactioncount 32
  337.             ifphealthl MAXPLAYERHEALTH ifhitspace ifcansee
  338.         {
  339.             addphealth 1
  340.             globalsound DUKE_DRINKING
  341.             resetactioncount
  342.         }
  343.     }
  344. enda
  345.  
  346. action WOODENHORSEFRAME  0   1   4
  347. action WOODENFALLFRAME  122  1   5
  348.  
  349. actor HORSEONSIDE WEAKEST cactor WOODENHORSE action WOODENFALLFRAME enda
  350. actor WOODENHORSE WEAK WOODENHORSEFRAME
  351.     fall
  352.     ifhitweapon
  353.     {
  354.         ifdead
  355.         {
  356.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  357.             debris SCRAP1 4
  358.             debris SCRAP2 3
  359.             killit
  360.         }
  361.         else action WOODENFALLFRAME
  362.     }
  363. enda
  364.  
  365. state steamcode
  366.     ifpdistl 8192 soundonce STEAM_HISSING
  367.  
  368.     ifcount 20
  369.     {
  370.         resetcount
  371.         ifp palive ifpdistl 1024
  372.         {
  373.             addphealth -1
  374.             palfrom 16 16
  375.         }
  376.     }
  377.     else
  378.     {
  379.         ifspawnedby STEAM break ifspawnedby CEILINGSTEAM break
  380.         sizeto 24 24
  381.     }
  382. ends
  383.  
  384. action STEAMFRAMES      0       5       1       1       1
  385. actor STEAM 0 STEAMFRAMES
  386.     state steamcode
  387. enda
  388.  
  389. actor CEILINGSTEAM 0 STEAMFRAMES
  390.     state steamcode
  391. enda
  392.  
  393. actor WATERBUBBLEMAKER 0 0 randomangle
  394.     ifpdistl 3084 ifrnd 24 spawn WATERBUBBLE
  395. enda
  396.  
  397. action BUBBLE
  398. action CRACKEDBUBBLE    1
  399. move BUBMOVE           -10 -36
  400. move BUBMOVEFAST           -10 -52
  401.  
  402. actor WATERBUBBLE 0 BUBBLE BUBMOVE getv geth randomangle
  403.  
  404.     ifaction CRACKEDBUBBLE
  405.     {
  406.         ifinwater ifrnd 192 killit
  407.         ifactioncount 7 killit
  408.     }
  409.     else
  410.     {
  411.         ifcount 4
  412.         {
  413.             ifrnd 192 move BUBMOVE getv geth randomangle
  414.             else move BUBMOVEFAST getv geth randomangle
  415.             resetcount
  416.         }
  417.  
  418.         ifonwater
  419.         {
  420.             iffloordistl 8 action CRACKEDBUBBLE
  421.         }
  422.         else ifactioncount 40 action CRACKEDBUBBLE
  423.     }
  424. enda
  425.  
  426. move SMOKEVEL 8 -16
  427. move ENGINE_SMOKE 64 -64
  428. move SMOKESHOOTOUT -192
  429. action SMOKEFRAMES 0 4 1 1 15
  430. actor SMALLSMOKE 0 SMOKEFRAMES
  431.     ifmove 0
  432.     {
  433.         ifspawnedby RECON
  434.             move SMOKESHOOTOUT geth
  435.         else ifspawnedby SECTOREFFECTOR
  436.             move ENGINE_SMOKE geth getv
  437.         else move SMOKEVEL geth getv faceplayer
  438.         ifspawnedby RPG
  439.         cstat 2
  440.       ifspawnedby COMMANDER
  441.         {
  442.         sizeto 80 80
  443.         move ENGINE_SMOKE
  444.         }
  445.     }
  446.     ifpdistl 1596 ifspawnedby RPG killit
  447.     ifactioncount 4 killit
  448. enda
  449.  
  450. action BARREL_DENTING  2 2 1 1 6
  451. action BARREL_DENTED   1
  452. action BARREL_DENTED2  2
  453.  
  454. move SPAWNED_BLOOD
  455.  
  456. actor NUKEBARRELDENTED WEAK
  457.     cactor NUKEBARREL
  458.     action BARREL_DENTED
  459. enda
  460.  
  461. actor NUKEBARRELLEAKED WEAK
  462.     cactor NUKEBARREL
  463.     action BARREL_DENTED2
  464. enda
  465.  
  466. actor NUKEBARREL MEDIUMSTRENGTH
  467.     ifsquished
  468.     {
  469.         debris SCRAP1 32
  470.         spawn BLOODPOOL
  471.         spawn OOZ
  472.         killit
  473.     }
  474.     fall
  475.     ifaction BARREL_DENTING
  476.     {
  477.         ifactioncount 2
  478.         {
  479.             debris SCRAP1 10
  480.             ifrnd 2 spawn BLOODPOOL
  481.             killit
  482.         }
  483.     }
  484.     else ifhitweapon
  485.     {
  486.         ifdead
  487.         {
  488.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  489.             sound VENT_BUST
  490.  
  491.             ifrnd 128
  492.                 spawn BLOODPOOL
  493.             action BARREL_DENTING
  494.         }
  495.         else
  496.         {
  497.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  498.             ifaction 0
  499.                 action BARREL_DENTED
  500.             else ifaction BARREL_DENTED
  501.             {
  502.                 action BARREL_DENTED2
  503.                 spawn BLOODPOOL
  504.             }
  505.             else ifaction BARREL_DENTED2
  506.                 action BARREL_DENTING
  507.         }
  508.     }
  509. enda
  510.  
  511. state burningbarrelcode
  512.     fall
  513.     ifcount 32
  514.     {
  515.         resetcount
  516.         ifp palive ifpdistl 1480 ifp phigher
  517.         {
  518.             addphealth -1
  519.             palfrom 16 16
  520.             ifrnd 96 sound DUKE_LONGTERM_PAIN
  521.         }
  522.     }
  523.     ifhitweapon
  524.     {
  525.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  526.         sound VENT_BUST
  527.         debris SCRAP1 10
  528.         ifrnd 128 spawn BURNING
  529.         else spawn BURNING2
  530.         killit
  531.     }
  532. ends
  533.  
  534. actor FIREBARREL state burningbarrelcode enda
  535. actor FIREVASE state burningbarrelcode enda
  536.  
  537. action SHRINKERFRAMES 0 4 1 1 10
  538. actor SHRINKEREXPLOSION 0 SHRINKERFRAMES
  539.     ifactioncount 4 killit
  540. enda
  541.  
  542. action EXPLOSION_FRAMES 0 20 1 1  4
  543. actor EXPLOSION2 1 EXPLOSION_FRAMES
  544.     ifactioncount 20 killit
  545. enda
  546.  
  547. actor EXPLOSION2BOT 1 EXPLOSION_FRAMES
  548.     ifactioncount 20 killit
  549. enda
  550.  
  551. action FFLAME_FR 0 16 1 1 1
  552. action FFLAME 0 1 1 1 1
  553.  
  554. actor FLOORFLAME 0 FFLAME_FR
  555.         ifaction FFLAME_FR
  556.         {
  557.                 ifpdistl 1024 hitradius 1024 WEAKEST WEAKEST WEAKEST WEAKEST
  558.                 ifactioncount 16
  559.                     action FFLAME
  560.         }
  561.         ifaction FFLAME ifrnd 4
  562.         {
  563.              action FFLAME_FR
  564.              sound CAT_FIRE
  565.              resetactioncount
  566.         }
  567.  
  568. enda
  569.  
  570.  
  571.  
  572. action ASATNSPIN     -5 5 1 1 5
  573. action ASATSHOOTING -10 2 5 1 20
  574. action ASATWAIT      -5 1 5 1 1
  575. action ASATDEAD       0 1 5 1 1
  576. move TURRVEL
  577. action ATOURSHOOTING  0 2 5 1 7
  578. action ATOURWAIT      0 1 5 1 1
  579. action ATOURHIT       5 5 1 1 5
  580.  
  581. actor ROTATEGUN ROTTURRETSTRENGTH
  582.  
  583. ifaction ASATDEAD { }
  584. else
  585.     {
  586. ifspritepal 3
  587.     {
  588. //    spritepal 0
  589.     ifaction 0 
  590.         {
  591.         strength 400
  592.           action ATOURSHOOTING 
  593.           move TURRVEL faceplayerslow
  594.         }
  595.  
  596.     ifaction ATOURSHOOTING
  597.     {
  598.     ifcanshoottarget
  599.         {
  600.         ifactioncount 2
  601.             {
  602.             shoot FIRELASER
  603.             sound COMM_ATTACK
  604.             ifcount 28 { action ATOURWAIT }
  605.             resetactioncount
  606.             }
  607.         }
  608.     else
  609.         {
  610.         ifcansee
  611.             {
  612.             ifactioncount 2
  613.                 {
  614.                 shoot FIRELASER
  615.                 sound COMM_ATTACK
  616.                 ifcount 28 { action ATOURWAIT }
  617.                 resetactioncount
  618.                 }
  619.             }
  620.         else { action ATOURWAIT }
  621.         }
  622.     }
  623.  
  624.     else ifaction ATOURWAIT
  625.         { ifactioncount 45 ifp palive ifcansee { action ATOURSHOOTING move TURRVEL faceplayerslow } }
  626.  
  627.     ifspritepal 3
  628.         {
  629.     ifhitweapon
  630.         {
  631.         ifdead
  632.             {
  633.             addkills 1 sound LASERTRIP_EXPLODE debris SCRAP1 15 spawn EXPLOSION2 killit
  634.               ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  635.             }
  636.           else
  637.             {
  638.             ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  639.             action ATOURHIT debris SCRAP1 4 move 0
  640.             }
  641.         }
  642.     ifaction ATOURHIT
  643.         {
  644.         ifrnd 32 { action ATOURSHOOTING move TURRVEL faceplayerslow }
  645.         }
  646.     }
  647.     }
  648. else
  649.     {
  650.     ifaction 0
  651.     {
  652.         action ASATSHOOTING
  653.         move TURRVEL faceplayer
  654.     }
  655.     else ifaction ASATNSPIN
  656.         { ifactioncount 32 { action ASATWAIT move TURRVEL faceplayer } }
  657.     else ifaction ASATSHOOTING
  658.     {
  659.         ifactioncount 12 { ifrnd 32 action ASATWAIT }
  660.         ifcount 32 resetcount
  661.         else ifcount 16 { ifcount 17 { } else { sound PRED_ATTACK shoot FIRELASER } }
  662.         else ifcount 4 { ifcount 5 { } else { ifcansee ifcanshoottarget { sound PRED_ATTACK shoot FIRELASER } } }
  663.     }
  664.     else ifaction ASATWAIT
  665.         { ifactioncount 64 ifrnd 32 ifp palive ifcansee { action ASATSHOOTING move TURRVEL faceplayer } }
  666.  
  667.     ifspritepal 3 { }
  668.     else
  669.         {
  670.     ifhitweapon { ifdead { addkills 1 sound LASERTRIP_EXPLODE debris SCRAP1 15 spawn EXPLOSION2 killit }
  671.         else { action ASATNSPIN debris SCRAP1 4 } move 0 }
  672.         }
  673.     }
  674.     }
  675. enda
  676.  
  677. action RIP_F 0 8 1 1 1
  678. actor FORCERIPPLE 0 RIP_F
  679.     ifactioncount 8 killit
  680. enda
  681.  
  682. action TRANSFOWARD 0  6  1  1  2
  683. action TRANSBACK   5  6  1 -1  2
  684. actor TRANSPORTERSTAR 0 TRANSFOWARD
  685.     ifaction TRANSFOWARD
  686.     {
  687.         ifactioncount 6
  688.             action TRANSBACK
  689.     }
  690.     else
  691.         ifactioncount 6 killit
  692. enda
  693.  
  694. action BEAMFOWARD  0  4  1  1  9
  695. actor TRANSPORTERBEAM 0 BEAMFOWARD
  696.     sizeto 32 64 sizeto 32 64 sizeto 32 64
  697.     ifactioncount 4 killit
  698. enda
  699.  
  700. state getcode
  701.     ifactor ATOMICHEALTH globalsound GETATOMICHEALTH
  702.     else globalsound DUKE_GET
  703.     palfrom 16 0 32
  704.     ifrespawn
  705.     {
  706.         move RESPAWN_ACTOR_FLAG
  707.         spawn RESPAWNMARKERRED
  708.         cstat 32768
  709.     }
  710.     else killit
  711. ends
  712.  
  713. state randgetweapsnds
  714.     ifrnd 64 globalsound DUKE_GETWEAPON1
  715.     else ifrnd 96 globalsound DUKE_GETWEAPON2
  716.     else ifrnd 128 globalsound DUKE_GETWEAPON3
  717.     else ifrnd 140 globalsound DUKE_GETWEAPON4
  718.     else globalsound DUKE_GETWEAPON6
  719. ends
  720.  
  721. state getweaponcode
  722.  
  723.     state randgetweapsnds
  724.  
  725.     palfrom 32 0 32
  726.     ifgotweaponce 1 break
  727.     ifrespawn
  728.     {
  729.         move RESPAWN_ACTOR_FLAG
  730.         spawn RESPAWNMARKERRED
  731.         cstat 32768
  732.     }
  733.     else killit
  734. ends
  735.  
  736.  
  737. state respawnit
  738.     ifcount RESPAWNITEMTIME { spawn TRANSPORTERSTAR move 0 cstat 0 sound TELEPORTER }
  739. ends
  740.  
  741. state quikget
  742.     ifactor ATOMICHEALTH globalsound GETATOMICHEALTH
  743.     else globalsound DUKE_GET
  744.     palfrom 16 0 32
  745.     killit
  746. ends
  747.  
  748. state quikweaponget
  749.     state randgetweapsnds
  750.     palfrom 32 0 32
  751.     ifgotweaponce 1 break
  752.     killit
  753. ends
  754.  
  755. actor STEROIDS
  756.     fall
  757.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  758.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE
  759.         ifpinventory GET_STEROIDS STEROID_AMOUNT ifcanseetarget
  760.     {
  761.         addinventory GET_STEROIDS STEROID_AMOUNT quote 37 state getcode
  762.         ifspawnedby STEROIDS state getcode
  763.         else state quikget
  764.     }
  765. enda
  766.  
  767. actor HEATSENSOR
  768.     fall
  769.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  770.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_HEATS HEAT_AMOUNT
  771.         ifcanseetarget
  772.     {
  773.         addinventory GET_HEATS HEAT_AMOUNT quote 101 state getcode
  774.         ifspawnedby HEATSENSOR state getcode
  775.         else state quikget
  776.     }
  777. enda
  778.  
  779. actor BOOTS
  780.     fall
  781.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  782.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_BOOTS BOOT_AMOUNT
  783.         ifcanseetarget
  784.     {
  785.         addinventory GET_BOOTS BOOT_AMOUNT quote 6
  786.         ifspawnedby BOOTS state getcode
  787.         else state quikget
  788.     }
  789. enda
  790.  
  791. actor SHIELD
  792.     fall
  793.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  794.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_SHIELD SHIELD_AMOUNT
  795.         ifcanseetarget
  796.     {
  797.         ifspawnedby LIZTROOP
  798.         {
  799.             ifrnd 128 addinventory GET_SHIELD PIG_SHIELD_AMOUNT1
  800.             else addinventory GET_SHIELD PIG_SHIELD_AMOUNT2
  801.             quote 104
  802.             sound KICK_HIT palfrom 24 0 32 killit
  803.         }
  804.         else addinventory GET_SHIELD SHIELD_AMOUNT quote 38
  805.         ifspawnedby SHIELD state getcode
  806.         else state quikget
  807.     }
  808. enda
  809.  
  810. actor AIRTANK
  811.     fall
  812.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  813.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_SCUBA SCUBA_AMOUNT
  814.         ifcanseetarget
  815.     {
  816.         addinventory GET_SCUBA SCUBA_AMOUNT quote 39 state getcode
  817.         ifspawnedby AIRTANK state getcode
  818.         else state quikget
  819.     }
  820. enda
  821.  
  822. action HOLODUKE_FRAMES 0 4 1 1 8
  823. actor HOLODUKE 0 HOLODUKE_FRAMES
  824.     fall
  825.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  826.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_HOLODUKE HOLODUKE_AMOUNT
  827.         ifcanseetarget
  828.     {
  829.         addinventory GET_HOLODUKE HOLODUKE_AMOUNT quote 51 state getcode
  830.         ifspawnedby HOLODUKE state getcode
  831.         else state quikget
  832.     }
  833. enda
  834.  
  835. actor JETPACK
  836.     fall
  837.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  838.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifpinventory GET_JETPACK JETPACK_AMOUNT ifcanseetarget
  839.     {
  840.         addinventory GET_JETPACK JETPACK_AMOUNT quote 41 state getcode
  841.         ifspawnedby JETPACK state getcode
  842.         else state quikget
  843.     }
  844. enda
  845.  
  846. actor ACCESSCARD
  847.     fall
  848.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  849.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  850.     {
  851.         ifpinventory GET_ACCESS 0 break
  852.         addinventory GET_ACCESS 1
  853.         quote 43
  854.         state getcode
  855.     }
  856. enda
  857.  
  858. // test boss_recod
  859.  
  860.  
  861. actor AMMO
  862.     fall
  863.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  864.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  865.     {
  866.         addammo PISTOL_WEAPON PISTOLAMMOAMOUNT quote 65
  867.         ifspawnedby AMMO state getcode
  868.         else state quikget
  869.     }
  870. enda
  871.  
  872. actor FREEZEAMMO
  873.     fall
  874.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  875.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  876.     {
  877.         addammo FREEZE_WEAPON FREEZEAMMOAMOUNT quote 66
  878.         ifspawnedby FREEZEAMMO state getcode
  879.         else state quikget
  880.     }
  881. enda
  882.  
  883.  
  884.  
  885. actor SHOTGUNAMMO
  886.     fall
  887.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  888.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  889.     {
  890.         addammo SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 69
  891.         ifspawnedby SHOTGUNAMMO state getcode
  892.         else state quikget
  893.     }
  894. enda
  895.  
  896. actor AMMOLOTS
  897.     fall
  898.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  899.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  900.     {
  901.         addammo PISTOL_WEAPON 48 quote 65
  902.         ifspawnedby AMMOLOTS state getcode
  903.         else state quikget
  904.     }
  905. enda
  906.  
  907. actor CRYSTALAMMO
  908.     fall
  909.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  910.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  911.     {
  912.         addammo SHRINKER_WEAPON CRYSTALAMMOAMOUNT quote 78
  913.         ifspawnedby CRYSTALAMMO state getcode
  914.         else state quikget
  915.     }
  916. enda
  917.  
  918. actor BATTERYAMMO
  919.     fall
  920.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  921.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  922.     {
  923.         addammo CHAINGUN_WEAPON CHAINGUNAMMOAMOUNT quote 63
  924.         ifspawnedby BATTERYAMMO state getcode
  925.         else state quikget
  926.     }
  927. enda
  928.  
  929. actor DEVISTATORAMMO
  930.     fall
  931.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  932.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  933.     {
  934.         addammo DEVISTATOR_WEAPON DEVISTATORAMMOAMOUNT quote 14
  935.         ifspawnedby DEVISTATORAMMO state getcode
  936.         else state quikget
  937.     }
  938. enda
  939.  
  940. actor RPGAMMO
  941.     fall
  942.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  943.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  944.     {
  945.         addammo RPG_WEAPON RPGAMMOBOX quote 64
  946.         ifspawnedby RPGAMMO state getcode
  947.         else state quikget
  948.     }
  949. enda
  950.  
  951. actor HBOMBAMMO
  952.     fall
  953.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  954.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  955.     {
  956.         ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
  957.  
  958.         addweapon HANDBOMB_WEAPON 1 quote 55
  959.         addammo HANDBOMB_WEAPON HANDBOMBBOX
  960.  
  961.         ifspawnedby HBOMBAMMO state getweaponcode
  962.         else state quikweaponget
  963.     }
  964. enda
  965.  
  966. actor RPGSPRITE
  967.     fall
  968.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  969.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  970.     {
  971.         ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
  972.  
  973.         addweapon RPG_WEAPON RPGAMMOBOX quote 56
  974.         ifspawnedby RPGSPRITE state getweaponcode
  975.         else state quikweaponget
  976.     }
  977. enda
  978.  
  979. // 531.89 GTE.
  980. // IMA.
  981. // PO BOX 4629
  982. // Rocford ill, 61110-4629
  983. // Ms. Lee
  984.  
  985. actor SHOTGUNSPRITE
  986.     fall
  987.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  988.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  989.     {
  990.         ifspawnedby PIGCOP
  991.         {
  992.             addweapon SHOTGUN_WEAPON 0
  993.             ifrnd 64 addammo SHOTGUN_WEAPON 4
  994.             else ifrnd 64 addammo SHOTGUN_WEAPON 3
  995.             else ifrnd 64 addammo SHOTGUN_WEAPON 2
  996.             else addammo SHOTGUN_WEAPON 1
  997.         }
  998.         else
  999.         {
  1000.             ifgotweaponce 0 break // Multiplayer only
  1001.             addweapon SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 57
  1002.         }
  1003.         ifspawnedby SHOTGUNSPRITE state getweaponcode
  1004.         else state quikweaponget
  1005.     }
  1006. enda
  1007.  
  1008.  
  1009.  
  1010. actor SIXPAK
  1011.     fall
  1012.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1013.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH ifcanseetarget
  1014.     {
  1015.         addphealth 30 quote 62
  1016.         ifspawnedby SIXPAK state getcode
  1017.         else state quikget
  1018.     }
  1019. enda
  1020.  
  1021. actor COLA
  1022.     fall
  1023.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1024.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH // ifcanseetarget
  1025.     {
  1026.         addphealth 10 quote 61
  1027.         ifspawnedby COLA state getcode
  1028.         else state quikget
  1029.     }
  1030. enda
  1031.  
  1032. actor ATOMICHEALTH
  1033.     fall
  1034.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1035.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1036.         ifphealthl MAXPLAYERATOMICHEALTH
  1037.     {
  1038.         addphealth 50 quote 19
  1039.         ifspawnedby ATOMICHEALTH state getcode
  1040.         else state quikget
  1041.     }
  1042. enda
  1043.  
  1044.  
  1045.  
  1046.  
  1047. actor FIRSTAID
  1048.     fall
  1049.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1050.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6
  1051.         ifpinventory GET_FIRSTAID FIRSTAID_AMOUNT ifcanseetarget
  1052.     {
  1053.         addinventory GET_FIRSTAID FIRSTAID_AMOUNT quote 3
  1054.  
  1055.         ifspawnedby FIRSTAID state getcode
  1056.         else state quikget
  1057.     }
  1058. enda
  1059.  
  1060.  
  1061. actor FIRSTGUNSPRITE
  1062.     fall
  1063.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1064.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1065.     {
  1066.         ifgotweaponce 0 break
  1067.  
  1068.         addweapon PISTOL_WEAPON 48
  1069.         ifspawnedby FIRSTGUNSPRITE state getweaponcode
  1070.         else state quikweaponget
  1071.     }
  1072. enda
  1073.  
  1074.  
  1075. actor TRIPBOMBSPRITE
  1076.     fall
  1077.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1078.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1079.     {
  1080.         ifgotweaponce 0 break
  1081.  
  1082.         addweapon TRIPBOMB_WEAPON 1
  1083.         quote 58
  1084.         ifspawnedby TRIPBOMBSPRITE state getweaponcode
  1085.         else state quikweaponget
  1086.     }
  1087. enda
  1088.  
  1089. actor CHAINGUNSPRITE
  1090.     fall
  1091.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1092.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1093.     {
  1094.         ifgotweaponce 0 break
  1095.  
  1096.         addweapon CHAINGUN_WEAPON 50 quote 54
  1097.         ifspawnedby CHAINGUNSPRITE state getweaponcode
  1098.         else state quikweaponget
  1099.     }
  1100. enda
  1101.  
  1102.  
  1103.  
  1104. actor SHRINKERSPRITE
  1105.     fall
  1106.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1107.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1108.     {
  1109.         ifgotweaponce 0 break
  1110.  
  1111.         addweapon SHRINKER_WEAPON 10 quote 60
  1112.         ifspawnedby SHRINKERSPRITE state getweaponcode
  1113.         else state quikweaponget
  1114.     }
  1115. enda
  1116.  
  1117. actor FREEZESPRITE
  1118.     fall
  1119.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1120.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1121.     {
  1122.         ifgotweaponce 0 break
  1123.  
  1124.         addweapon FREEZE_WEAPON FREEZEAMMOAMOUNT quote 59
  1125.         ifspawnedby FREEZESPRITE state getweaponcode
  1126.         else state quikweaponget
  1127.     }
  1128. enda
  1129.  
  1130. actor DEVISTATORSPRITE
  1131.     fall
  1132.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1133.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1134.     {
  1135.         ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
  1136.  
  1137.         addweapon DEVISTATOR_WEAPON DEVISTATORAMMOAMOUNT quote 87
  1138.         ifspawnedby DEVISTATORSPRITE state getweaponcode
  1139.         else state quikweaponget
  1140.     }
  1141. enda
  1142. action FIRE_FRAMES   -1 14 1 1 1
  1143. move FIREVELS
  1144.  
  1145. state firestate
  1146.  
  1147.   ifaction 0
  1148.     ifrnd 16
  1149.     {
  1150.       action FIRE_FRAMES
  1151.       cstator 128
  1152.     }
  1153.  
  1154.   sleeptime 300         // Never let it fall to sleep
  1155.  
  1156.   ifspawnedby FIRE
  1157.   {
  1158.     ifgapzl 16
  1159.       break
  1160.   }
  1161.   else
  1162.     ifspawnedby FIRE2
  1163.   {
  1164.     ifgapzl 16
  1165.       break
  1166.   }
  1167.  
  1168.   ifinwater
  1169.     killit
  1170.  
  1171.   ifp palive
  1172.     ifpdistl 844
  1173.       ifrnd 32
  1174.         ifcansee
  1175.   {
  1176.     soundonce DUKE_LONGTERM_PAIN
  1177.     addphealth -1
  1178.     palfrom 32 32
  1179.   }
  1180.  
  1181.   ifactor FIRE
  1182.   {
  1183.     ifspawnedby FIRE
  1184.       break
  1185.   }
  1186.   else
  1187.     ifactor FIRE2
  1188.       ifspawnedby FIRE2
  1189.         break
  1190.  
  1191.   iffloordistl 128
  1192.   {
  1193.     ifrnd 128
  1194.     {
  1195.       ifcount 84
  1196.         killit
  1197.                 // This line(and the else below)
  1198.                 // is not necessary, since actors
  1199.                 // with zero x-size are automatically
  1200.                 // deleted anyway!
  1201.       else
  1202.         ifcount 42
  1203.           sizeto 0 0
  1204.       else
  1205.         sizeto 32 32
  1206.     }
  1207.   }
  1208.   else
  1209.     killit
  1210.  
  1211. ends
  1212.  
  1213. useractor notenemy FIRE WEAK 0 FIREVELS state firestate enda
  1214. useractor notenemy FIRE2 WEAK 0 FIREVELS state firestate enda
  1215.  
  1216.  
  1217. /*
  1218. state firestate
  1219.  
  1220.     ifgapzl 16 break
  1221.     ifinwater killit
  1222.  
  1223.     ifp palive ifpdistl 844 ifrnd 32 ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -1 palfrom 32 32 }
  1224.  
  1225.     ifactor FIRE ifspawnedby FIRE break
  1226.     else ifactor FIRE2 ifspawnedby FIRE2 break
  1227.  
  1228.     iffloordistl 128
  1229.     {
  1230.         ifcount 32 sizeto 8 8
  1231.         ifcount 64 killit
  1232.     }
  1233.     else killit
  1234.  
  1235. ends
  1236.  
  1237. action FIRE_FRAMES     -1 14 1 1 1
  1238. move FIREVELS
  1239. actor FIRE WEAK FIRE_FRAMES FIREVELS state firestate enda
  1240. actor FIRE2 WEAK FIRE_FRAMES FIREVELS state firestate enda
  1241. */
  1242.  
  1243.  
  1244. actor FECES
  1245.     ifcount 24
  1246.     {
  1247.         ifpdistl RETRIEVEDISTANCE
  1248.         {
  1249.             soundonce DUKE_STEPONFECES
  1250.             sound STEPNIT
  1251.  
  1252.             spawn BLOODPOOL   // Will be brown
  1253.             killit
  1254.         }
  1255.     }
  1256.     else sizeto 32 32
  1257. enda
  1258.  
  1259. state drop_ammo ifrnd SPAWNAMMOODDS spawn AMMO ends
  1260. state drop_battery ifrnd SPAWNAMMOODDS spawn BATTERYAMMO ends
  1261. state drop_sgshells ifrnd SPAWNAMMOODDS spawn SHOTGUNAMMO ends
  1262. state drop_shotgun ifrnd SPAWNAMMOODDS spawn SHOTGUNSPRITE ends
  1263. state drop_chaingun
  1264.     ifrnd SPAWNAMMOODDS
  1265.     {
  1266.         ifrnd 32 spawn CHAINGUNSPRITE
  1267.         else spawn BATTERYAMMO
  1268.     }
  1269. ends
  1270.  
  1271. state jib_sounds
  1272.     ifrnd SWEARFREQUENCY
  1273.     {
  1274.         ifrnd 16 globalsound JIBBED_ACTOR1
  1275.         else ifrnd 16 globalsound JIBBED_ACTOR2
  1276.         else ifrnd 16 globalsound JIBBED_ACTOR3
  1277.         else ifrnd 16 globalsound JIBBED_ACTOR5
  1278.         else ifrnd 16 globalsound JIBBED_ACTOR6
  1279.         else ifrnd 16 globalsound JIBBED_ACTOR10
  1280.         else ifrnd 16 globalsound JIBBED_ACTOR7
  1281.         else ifrnd 16 globalsound JIBBED_ACTOR4
  1282.         else ifrnd 16 globalsound JIBBED_ACTOR8
  1283.         else ifrnd 16 globalsound JIBBED_ACTOR13
  1284.         else ifrnd 16 globalsound JIBBED_ACTOR9
  1285.         else ifrnd 16 globalsound JIBBED_ACTOR11
  1286.         else ifrnd 16 globalsound JIBBED_ACTOR12
  1287.     }
  1288. ends
  1289.  
  1290. state standard_jibs
  1291.     guts JIBS2 1
  1292.     guts JIBS3 2
  1293.     guts JIBS4 3
  1294.     guts JIBS5 2
  1295.     guts JIBS6 3
  1296.     ifrnd 4 { guts JIBS1 1 spawn BLOODPOOL }               // spine
  1297.     state jib_sounds
  1298. ends
  1299.  
  1300. action FEMSHRUNK
  1301. action FEMFROZEN1 1
  1302. action FEMFROZEN2
  1303. action FEMDANCE1 19 1 1 1 16
  1304. action FEMDANCE3 19 1 1 1 26
  1305.  
  1306. action FEMDANCE2 20 2 1 1 10
  1307. action FEMANIMATE
  1308.  
  1309. action ASAW1 0 4 1 1 15
  1310. action ASAW2 740 2 1 1 20
  1311. action ASAW3 742 4 1 1 5
  1312.  
  1313. move SAWRUNVEL 50
  1314. move SAWATTACKVEL 100 30
  1315. move SAWATTACKUPVEL 100 -50
  1316. move SAWATTACKDOWNVEL 100 50
  1317. move SAWSTOP
  1318.  
  1319. ai AISAW1 ASAW1 SAWRUNVEL randomangle
  1320. ai AISAW2 ASAW2 SAWSTOP
  1321. ai AISAWATTACKUP ASAW3 SAWATTACKUPVEL faceplayer
  1322. ai AISAWATTACKDOWN ASAW3 SAWATTACKDOWNVEL faceplayer
  1323. ai AISAWATTACK ASAW3 SAWATTACKVEL faceplayer
  1324.  
  1325. state statesawhit
  1326.     ifdead
  1327.     {
  1328.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  1329.       addkills 1
  1330.       hitradius 1500 2 5 8 10
  1331.     sound RPG_EXPLODE
  1332.     spawn EXPLOSION2
  1333.     killit
  1334.     }
  1335.     else
  1336.     {
  1337.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  1338.  
  1339.     }
  1340. ends
  1341.  
  1342.  
  1343.  
  1344. // *****************
  1345. // *****************
  1346.  
  1347. // *****************
  1348. // *****************
  1349.  
  1350. actor PODFEM1 40 
  1351. sizeto 35 35 sizeto 35 35 sizeto 35 35 sizeto 35 35 sizeto 35 35
  1352. cstat 257
  1353. ifcansee
  1354. ifaction 0 { ai AISAW1 }
  1355.  
  1356. ifai AISAW1 { ifcansee { ifrnd 4 { ai AISAW2 } } }
  1357.  
  1358. ifai AISAW2 {
  1359.         ifactioncount 2 { ai AISAWATTACK }
  1360.         soundonce OCTA_ATTACK2
  1361.         }
  1362.  
  1363. ifai AISAWATTACK
  1364.     {
  1365.     sound OCTA_ATTACK1
  1366.     ifpdistl 1100
  1367.         {
  1368.         palfrom 32 32
  1369.         sound OCTA_DYING
  1370.         ifrnd 128 { addphealth -1 }
  1371.         }
  1372.  
  1373.         ifcansee { }
  1374.         else { ai AISAW1 soundonce DRON_PAIN }
  1375.  
  1376.  
  1377.  
  1378.     ifp phigher { ifrnd 16 { ai AISAWATTACKUP } }
  1379.     }
  1380.  
  1381. ifai AISAWATTACKUP
  1382.     {
  1383.     ifrnd 16
  1384.         {
  1385.         ifp phigher { }
  1386.         else { ai AISAWATTACK }
  1387.         }
  1388.     }
  1389.  
  1390. ifhitweapon state statesawhit
  1391.  
  1392. enda
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400. state femcode
  1401.  
  1402.     ifactor NAKED1 { } else ifactor FEM6 { } else
  1403.     {
  1404.         fall
  1405.         ifactor BLOODYPOLE ifhitweapon ifdead
  1406.             { state standard_jibs killit }
  1407.     }
  1408.  
  1409.     ifaction FEMSHRUNK
  1410.     {
  1411.         ifcount SHRUNKDONECOUNT action FEMANIMATE
  1412.         else ifcount SHRUNKCOUNT sizeto 40 40
  1413.         else state genericshrunkcode
  1414.     }
  1415.     else ifaction FEMDANCE1 { ifactioncount 2 action FEMDANCE2 }
  1416.     else ifaction FEMDANCE2 { ifactioncount 8 action FEMDANCE3 }
  1417.     else ifaction FEMDANCE3 { ifactioncount 2 action FEMANIMATE }
  1418.     else ifaction FEMFROZEN1
  1419.     {
  1420.         ifcount THAWTIME { action FEMANIMATE getlastpal }
  1421.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  1422.  
  1423.         ifhitweapon
  1424.         {
  1425.             ifwasweapon FREEZEBLAST { strength 0 break }
  1426.             lotsofglass 30
  1427.             sound GLASS_BREAKING
  1428.             respawnhitag
  1429.             ifrnd 84 spawn BLOODPOOL
  1430.             killit
  1431.         }
  1432.         else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  1433.         break
  1434.     }
  1435.     else ifaction FEMFROZEN2
  1436.     {
  1437.         ifcount THAWTIME { action FEMANIMATE getlastpal }
  1438.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  1439.  
  1440.         ifhitweapon
  1441.         {
  1442.             ifwasweapon FREEZEBLAST { strength 0 break }
  1443.             lotsofglass 30
  1444.  
  1445.             sound GLASS_BREAKING
  1446.             ifrnd 84 spawn BLOODPOOL
  1447.             respawnhitag
  1448.  
  1449.             ifrnd 128 sound DUKE_HIT_STRIPPER1
  1450.             else sound DUKE_HIT_STRIPPER2
  1451.  
  1452.             killit
  1453.         }
  1454.         else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  1455.         break
  1456.     }
  1457.  
  1458.     ifhitweapon
  1459.     {
  1460.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING count 0 action FEMSHRUNK break }
  1461.  
  1462.         ifdead
  1463.         {
  1464.             ifwasweapon FREEZEBLAST
  1465.             {
  1466.                 ifaction FEMSHRUNK break
  1467.  
  1468.                 ifactor NAKED1 action FEMFROZEN2
  1469.                 else ifactor FEM5 action FEMFROZEN2
  1470.                 else ifactor FEM6 action FEMFROZEN2
  1471.                 else ifactor FEM8 action FEMFROZEN2
  1472.                 else ifactor FEM9 action FEMFROZEN2
  1473.                 else ifactor PODFEM1 action FEMFROZEN2
  1474.                 else action FEMFROZEN1
  1475.  
  1476.                 move 0
  1477.                 spritepal 1
  1478.                 strength 0
  1479.  
  1480.                 sound SOMETHINGFROZE
  1481.  
  1482.                 break
  1483.             }
  1484.  
  1485.             ifrnd 128 sound DUKE_HIT_STRIPPER1
  1486.             else sound DUKE_HIT_STRIPPER2
  1487.  
  1488.             respawnhitag
  1489.             state standard_jibs
  1490.  
  1491.             shoot BLOODSPLAT1
  1492.             shoot BLOODSPLAT2
  1493.             shoot BLOODSPLAT3
  1494.             shoot BLOODSPLAT4
  1495.             spawn BLOODPOOL
  1496.  
  1497.             ifactor FEM1 money 5
  1498.             else ifactor FEM2 { money 7 cactor BARBROKE cstat 0 }
  1499. //            else ifactor FEM3 money 4
  1500.             else ifactor FEM7 money 8
  1501.  
  1502.             ifactor FEM5 { strength TOUGH cactor BLOODYPOLE }
  1503.             else ifactor FEM6 { cstat 0 cactor FEM6PAD }
  1504.             else ifactor FEM8 { strength TOUGH cactor BLOODYPOLE }
  1505.             else
  1506.             {
  1507.                 spritepal 6
  1508.                 soundonce LADY_SCREAM
  1509.                 ifactor NAKED1 debris SCRAP3 18
  1510.                 else ifactor PODFEM1 debris SCRAP3 18
  1511.                 killit
  1512.             }
  1513.         }
  1514.         else
  1515.         {
  1516.             sound SQUISHED
  1517.             guts JIBS6 1
  1518.             ifactor FEM8 break
  1519.             soundonce LADY_SCREAM
  1520.         }
  1521.     }
  1522. ends
  1523.  
  1524. state killme
  1525.     ifp pfacing ifpdistl 1280 ifhitspace soundonce KILLME
  1526. ends
  1527.  
  1528. state tipme
  1529.     ifp pfacing ifpdistl 1280 ifhitspace
  1530.     {
  1531.         tip
  1532.         ifrnd 128 soundonce DUKE_TIP1
  1533.         else soundonce DUKE_TIP2
  1534.         ifactor FEM1 action FEMDANCE1
  1535.     }
  1536. ends
  1537.  
  1538. actor FEM1 TOUGH FEMANIMATE state tipme state femcode enda
  1539. actor FEM2 TOUGH FEMANIMATE state tipme state femcode enda
  1540. actor FEM3 TOUGH FEMANIMATE state killme state femcode enda
  1541. // actor FEM4 TOUGH FEMANIMATE state killme state femcode enda
  1542.  
  1543. actor FEM4 TOUGH
  1544. cstat 32768
  1545. ifcansee
  1546.     {
  1547.     ifrnd 1
  1548.         {
  1549.         ifrnd 32 { soundonce ENDSEQVOL3SND8 }
  1550.         else ifrnd 32 { soundonce ENDSEQVOL3SND6 }
  1551.         else ifrnd 32 { soundonce ENDSEQVOL3SND5 }
  1552.         else ifrnd 32 { soundonce ENDSEQVOL3SND4 }
  1553.         }
  1554.     }
  1555. enda
  1556.  
  1557.  
  1558. actor FEM5 TOUGH FEMANIMATE state killme state femcode enda
  1559. actor FEM6 TOUGH FEMANIMATE state killme state femcode enda
  1560. actor FEM7 TOUGH FEMANIMATE state tipme state femcode enda
  1561. actor FEM8 TOUGH FEMANIMATE state femcode enda
  1562. actor FEM9 TOUGH FEMANIMATE state femcode enda
  1563. actor NAKED1 TOUGH FEMANIMATE state killme state femcode enda
  1564. // actor PODFEM1 TOUGH FEMANIMATE state killme state femcode enda
  1565. actor BLOODYPOLE TOUGH state femcode enda
  1566.  
  1567.  
  1568. actor STATUEFLASH fall // state statuehit
  1569.     ifcount 32 cactor STATUE
  1570. enda
  1571.  
  1572. actor STATUE
  1573.     ifp pfacing ifpdistl 1280 ifhitspace { cactor STATUEFLASH move 0 }
  1574. enda
  1575.  
  1576. actor MIKE
  1577.     ifp pfacing ifpdistl 1280 ifhitspace mikesnd
  1578. enda
  1579.  
  1580. state troop_body_jibs
  1581.     ifrnd 64 guts HEADJIB1 1
  1582.     ifrnd 64 guts LEGJIB1 2
  1583.     ifrnd 64 guts ARMJIB1 1
  1584.     ifrnd 48 spawn BLOODPOOL
  1585. ends
  1586.  
  1587. state liz_body_jibs
  1588.     ifrnd 128 { guts LIZMANHEAD1 1 spawn 2201 sound PIPEBOMB_BOUNCE }
  1589.     ifrnd 128 { guts HEADJIB1 1 spawn 1768 soundonce PIPEBOMB_BOUNCE }
  1590.     ifrnd 128 { guts LIZMANLEG1 2 spawn 2209 sound PIPEBOMB_BOUNCE }
  1591.     ifrnd 128 { guts LIZMANARM1 2 spawn 2205 soundonce PIPEBOMB_BOUNCE }
  1592. ends
  1593.  
  1594. state delete_enemy killit ends
  1595.  
  1596.  
  1597. action BLOODFRAMES 0 4 1 1 15
  1598. actor BLOOD 0 BLOODFRAMES
  1599.     ifspawnedby LIZMAN { }
  1600.     else
  1601.         {
  1602.         sizeto 72 72 sizeto 72 72 sizeto 72 72
  1603.         ifpdistg 3144 killit
  1604.         ifactioncount 4 killit
  1605.         }
  1606. enda
  1607.  
  1608. action EGGOPEN1 1 1 1 1 4
  1609. action EGGOPEN2 2 1 1 1 4
  1610. action EGGOPEN3 2 1 1 1 4
  1611. action EGGWAIT  0
  1612. action EGGFROZEN 1
  1613. action EGGSHRUNK 1
  1614.  
  1615. actor EGG TOUGH
  1616.     ifaction 0
  1617.     {
  1618.         ifcount 64
  1619.         {
  1620.             ifrnd 128 { action EGGWAIT move 0 }
  1621.             else
  1622.             {
  1623.                 sound SLIM_HATCH
  1624.                 action EGGOPEN1
  1625.             }
  1626.         }
  1627.     }
  1628.     else ifaction EGGOPEN1 ifactioncount 4 action EGGOPEN2
  1629.     else ifaction EGGOPEN2 ifactioncount 4 { spawn GREENSLIME action EGGOPEN3 }
  1630.     else ifaction EGGSHRUNK
  1631.     {
  1632.         ifcount SHRUNKDONECOUNT action EGGOPEN2
  1633.         else ifcount SHRUNKCOUNT sizeto 48 40
  1634.         else state genericshrunkcode
  1635.     }
  1636.     else ifaction EGGFROZEN
  1637.     {
  1638.         ifcount THAWTIME { action 0 getlastpal }
  1639.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  1640.  
  1641.         ifhitweapon
  1642.         {
  1643.             ifwasweapon FREEZEBLAST { strength 0 break }
  1644.             lotsofglass 30
  1645.  
  1646.             sound GLASS_BREAKING
  1647.             ifrnd 84 spawn BLOODPOOL
  1648.  
  1649.             addkills 1
  1650.             killit
  1651.         }
  1652.  
  1653.         // ifp pducking
  1654.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  1655.  
  1656.         break
  1657.     }
  1658.  
  1659.     ifhitweapon
  1660.     {
  1661.         ifwasweapon SHRINKSPARK { move 0 sound ACTOR_SHRINKING action EGGSHRUNK break }
  1662.  
  1663.         ifdead
  1664.         {
  1665.             ifwasweapon FREEZEBLAST
  1666.                 { sound SOMETHINGFROZE spritepal 1 move 0 action EGGFROZEN strength 0 break }
  1667.  
  1668.             addkills 1
  1669.  
  1670.             sound SQUISHED
  1671.  
  1672.             state standard_jibs
  1673.             state delete_enemy
  1674.         }
  1675.     }
  1676.     else ifaction EGGWAIT
  1677.     {
  1678.         ifcount 512 ifrnd 2
  1679.         {
  1680.             ifaction EGGSHRUNK break
  1681.             sound SLIM_HATCH
  1682.             action EGGOPEN1
  1683.         }
  1684.     }
  1685.  
  1686. enda
  1687.  
  1688. actor KNEE KNEE_WEAPON_STRENGTH enda
  1689. actor SPIT SPIT_WEAPON_STRENGTH enda
  1690. actor CHAINGUN CHAINGUN_WEAPON_STRENGTH enda
  1691. actor SHOTGUN SHOTGUN_WEAPON_STRENGTH enda
  1692. actor    HEAVYHBOMB HANDBOMB_WEAPON_STRENGTH enda
  1693. actor BOUNCEMINE BOUNCEMINE_WEAPON_STRENGTH enda
  1694. actor MORTER MORTER_WEAPON_STRENGTH enda
  1695.  
  1696. actor SHRINKSPARK SHRINKER_WEAPON_STRENGTH enda
  1697. actor RPG RPG_WEAPON_STRENGTH enda
  1698. actor FIRELASER FIRELASER_WEAPON_STRENGTH enda
  1699.  
  1700. actor FREEZEBLAST FREEZETHROWER_WEAPON_STRENGTH enda
  1701.  
  1702. actor DEVISTATORBLAST FREEZETHROWER_WEAPON_STRENGTH enda
  1703. actor COOLEXPLOSION1 COOL_EXPLOSION_STRENGTH enda
  1704. actor TRIPBOMB TRIPBOMB_STRENGTH enda
  1705.  
  1706. action WEAP2FRAMES 0  4  1  1  6
  1707.  
  1708. actor SHOTSPARK1 PISTOL_WEAPON_STRENGTH WEAP2FRAMES
  1709.     ifdead killit
  1710.     ifactioncount 4 killit
  1711.     else
  1712.     {
  1713.         ifactioncount 3 { ifinwater spawn WATERBUBBLE }
  1714.         else ifcount 2 { } else ifonwater spawn WATERSPLASH2
  1715.     }
  1716. enda
  1717.  
  1718. state standard_pjibs
  1719.     guts JIBS1 1
  1720.     guts JIBS3 2
  1721.     guts JIBS4 1
  1722.     guts JIBS5 1
  1723.     guts JIBS6 2
  1724.     guts DUKETORSO 1
  1725.     guts DUKELEG 2
  1726.     guts DUKEGUN 1
  1727.     ifrnd 16 money 1
  1728. ends
  1729.  
  1730. move DUKENOTMOVING
  1731. state handle_dead_dukes
  1732.     fall
  1733.     ifmove 0     // 1st time initializiation...
  1734.     {
  1735.         ifrnd 128 cstat 4
  1736.         else cstat 0
  1737.         move DUKENOTMOVING
  1738.     }
  1739.  
  1740.     ifsquished
  1741.     {
  1742.         sound SQUISHED
  1743.         spawn OOZ
  1744.         killit
  1745.     }
  1746.     else ifcount 1024 ifpdistg 4096 killit
  1747.     else
  1748.     {
  1749.         strength 0
  1750.         ifhitweapon ifwasweapon RADIUSEXPLOSION
  1751.         {
  1752.             state standard_jibs
  1753.             killit
  1754.         }
  1755.     }
  1756. ends
  1757.  
  1758. action PLYINGFRAMES 0 1 0 1 1
  1759. actor DUKELYINGDEAD 0 PLYINGFRAMES
  1760.     state handle_dead_dukes
  1761. enda
  1762.  
  1763. action PSTAND       0   1   5   1    1
  1764. action PEXPLODE     106   5   1   1   10
  1765. action PEXPLODEAD   113   1   1
  1766.  
  1767. action PJPHOUVER    15   1   5   1
  1768. action PWALK        20   4   5   1   16
  1769. action PRUN         20   4   5   1   10
  1770. action PWALKBACK    45   4   5  -1   16
  1771. action PRUNBACK     45   4   5  -1   10
  1772. action PJUMPING     50   4   5   1   30
  1773. action PFALLING     65   1   5
  1774. action PDUCKING     86   1   5
  1775. action PCRAWLING    86   3   5   1   20
  1776. action PAKICKING    40   2   5   1   25
  1777. action PFLINTCHING  106  1   1   1   10
  1778. action PTHROWNBACK  106  5   1   1   18
  1779. action PFROZEN       20  1   5
  1780. action PLYINGDEAD   113  1   1
  1781.  
  1782. action PSWIMMINGGO   375   1   5   1   10
  1783. action PSWIMMING     375   4   5   1   13
  1784. action PSWIMMINGWAIT 395   1   5   1   13
  1785. action PTREDWATER    395   2   5   1   17
  1786.  
  1787. move PSTOPED
  1788. move PSHRINKING // used as a var only
  1789.  
  1790. state check_dead_thrown_back
  1791.     ifdead
  1792.     {
  1793.         strength 0
  1794.         action PTHROWNBACK
  1795.     }
  1796. ends
  1797.  
  1798. state check_pstandard
  1799.     ifp pwalking action PWALK
  1800.     else ifp pkicking action PAKICKING
  1801.     else ifp pwalkingback action PWALKBACK
  1802.     else ifp prunning action PRUN
  1803.     else ifp prunningback action PRUNBACK
  1804.     else ifp pjumping
  1805.         action PJUMPING
  1806.     else ifp pducking action PDUCKING
  1807. ends
  1808.  
  1809. state random_wall_jibs
  1810.     ifrnd 96 shoot BLOODSPLAT1
  1811.     ifrnd 96 shoot BLOODSPLAT2
  1812.     ifrnd 96 shoot BLOODSPLAT3
  1813.     ifrnd 96 shoot BLOODSPLAT4
  1814.     ifrnd 96 shoot BLOODSPLAT1
  1815. ends
  1816.  
  1817. actor APLAYER 100 PSTAND 0 0
  1818.     ifaction 0 action PSTAND
  1819.  
  1820.     ifphealthl 15 { soundonce SLIM_ROAM }
  1821.     else { ifphealthl 30 { soundonce SLIM_HATCH } }
  1822.  
  1823.  
  1824.     ifdead
  1825.     {
  1826.         ifsquished palfrom 32 63 63 63
  1827.         else fall
  1828.  
  1829.         ifactioncount 7 { move 0 } else ifactioncount 6
  1830.         {
  1831.             ifmultiplayer { }
  1832.             else
  1833.             {
  1834.                 ifrnd 32 sound DUKE_KILLED5
  1835.                 else ifrnd 32 sound DUKE_KILLED3
  1836.                 else ifrnd 32 sound DUKE_KILLED1
  1837.                 else ifrnd 32 sound DUKE_KILLED2
  1838.             }
  1839.         }
  1840.  
  1841.         ifaction PLYINGDEAD
  1842.         {
  1843.             ifactioncount 3 move PSTOPED
  1844.             quote 13
  1845.             ifhitspace
  1846.             {
  1847.                 action PSTAND
  1848.                 spawn DUKELYINGDEAD
  1849.                 resetplayer
  1850.             }
  1851.             break
  1852.         }
  1853.         else ifaction PTHROWNBACK
  1854.         {
  1855.             ifactioncount 5
  1856.             {
  1857.                 spawn BLOODPOOL
  1858.                 action PLYINGDEAD
  1859.             }
  1860.             else ifactioncount 1 move 0
  1861.             break
  1862.         }
  1863.         else ifaction PFROZEN
  1864.         {
  1865.             cstat 257
  1866.  
  1867.             palfrom 16 0 0 24
  1868.  
  1869.             ifhitweapon
  1870.             {
  1871.                 ifwasweapon FREEZEBLAST break
  1872.                 lotsofglass 60
  1873.                 ifrnd 84 spawn BLOODPOOL
  1874.  
  1875.                 getlastpal
  1876.                 sound GLASS_BREAKING
  1877.                 spawn ATOMICHEALTH
  1878.                 cstat 32768
  1879.                 action PLYINGDEAD
  1880.                 break
  1881.             }
  1882.  
  1883.             ifactioncount THAWTIME { getlastpal strength 1 move 0 action PSTAND }
  1884.             else ifactioncount FROZENDRIPTIME { ifrnd 32 spawn WATERDRIP }
  1885.  
  1886.             ifp pfacing   // assumes some other player
  1887.                 ifpdistl FROZENQUICKKICKDIST pkick
  1888.  
  1889.             break
  1890.         }
  1891.         else ifaction PEXPLODEAD
  1892.         {
  1893.             quote 13
  1894.             ifhitspace
  1895.             {
  1896.                 action PSTAND
  1897.                 resetplayer
  1898.             }
  1899.             break
  1900.         }
  1901.         else ifaction PEXPLODE
  1902.         {
  1903.             ifactioncount 5
  1904.             {
  1905.                 action PEXPLODEAD
  1906.                 spawn BLOODPOOL
  1907.             }
  1908.             break
  1909.         }
  1910.  
  1911.         else ifp pshrunk
  1912.         {
  1913.             state standard_pjibs
  1914.             spawn BLOODPOOL
  1915.  
  1916.             sound SQUISHED
  1917.             sound DUKE_DEAD
  1918.  
  1919.             cstat 32768                 // Hide the sprite
  1920.  
  1921.             action PLYINGDEAD
  1922.         }
  1923.  
  1924.         else
  1925.         {
  1926.             ifinwater
  1927.             {
  1928.                 action PLYINGDEAD
  1929.                 spawn WATERBUBBLE
  1930.                 spawn WATERBUBBLE
  1931.             }
  1932.             else
  1933.             {
  1934.                 action PEXPLODE
  1935.                 state standard_pjibs
  1936.                 cstat 32768
  1937.                 sound SQUISHED
  1938.                 sound DUKE_DEAD
  1939.             }
  1940.         }
  1941.         break
  1942.     }
  1943.  
  1944.     ifsquished
  1945.     {
  1946.         strength -1
  1947.         sound SQUISHED
  1948.         spawn OOZ
  1949.         break
  1950.     }
  1951.  
  1952.     ifp ponsteroids
  1953.     {
  1954.         ifp pstanding { }
  1955.         else spawn FRAMEEFFECT1
  1956.     }
  1957.  
  1958.     ifmove PSHRINKING
  1959.     {
  1960.         ifcount 32
  1961.         {
  1962.             ifcount SHRUNKDONECOUNT move 0
  1963.             else ifcount SHRUNKCOUNT
  1964.             {
  1965.                 sizeto 42 36
  1966.                 ifgapzl 24
  1967.                 {
  1968.                     strength 0
  1969.                     sound SQUISHED
  1970.                     palfrom 48 64
  1971.                     break
  1972.                 }
  1973.             }
  1974.             else ifp ponsteroids count SHRUNKCOUNT
  1975.         }
  1976.         else
  1977.         {
  1978.             ifp ponsteroids count SHRUNKCOUNT
  1979.             else { sizeto 8 9 spawn FRAMEEFFECT1 }
  1980.         }
  1981.     }
  1982.  
  1983.     else ifhitweapon
  1984.     {
  1985.         ifdead { ifmultiplayer sound DUKE_KILLED4 }
  1986.         else
  1987.         {
  1988.             ifmultiplayer
  1989.             {
  1990.                 ifphealthl YELLHURTSOUNDSTRENGTHMP
  1991.                 {
  1992.                     ifrnd 64 sound DUKE_LONGTERM_PAIN2
  1993.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN3
  1994.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN4
  1995.                     else sound DUKE_DEAD
  1996.                 }
  1997.                 else
  1998.                 {
  1999.                     ifrnd 64 sound DUKE_LONGTERM_PAIN5
  2000.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN6
  2001.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN7
  2002.                     else sound DUKE_LONGTERM_PAIN8
  2003.                 }
  2004.             }
  2005.             else
  2006.             {
  2007.                 ifphealthl YELLHURTSOUNDSTRENGTH
  2008.                 {
  2009.                     ifrnd 74 sound DUKE_LONGTERM_PAIN2
  2010.                     else ifrnd 8 sound DUKE_LONGTERM_PAIN3
  2011.                     else sound DUKE_LONGTERM_PAIN4
  2012.                 }
  2013.                 ifrnd 128 sound DUKE_LONGTERM_PAIN
  2014.             }
  2015.         }
  2016.         ifstrength TOUGH
  2017.         {
  2018.             state headhitstate
  2019.             sound DUKE_GRUNT
  2020.             ifp pstanding action PFLINTCHING
  2021.         }
  2022.  
  2023.         ifwasweapon RPG
  2024.         {
  2025.             ifrnd 32 spawn BLOOD
  2026.             ifdead state standard_pjibs
  2027.             palfrom 48 52
  2028.             break
  2029.         }
  2030.         ifwasweapon RADIUSEXPLOSION
  2031.         {
  2032.             ifrnd 32 spawn BLOOD
  2033.             ifdead state standard_pjibs
  2034.             palfrom 48 52
  2035.             break
  2036.         }
  2037.         ifwasweapon FIREEXT
  2038.         {
  2039.             ifrnd 32 spawn BLOOD
  2040.             ifdead state standard_pjibs
  2041.             palfrom 48 52
  2042.             break
  2043.         }
  2044.  
  2045.         ifwasweapon SHRINKSPARK
  2046.         {
  2047.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  2048.             break
  2049.         }
  2050.  
  2051.         ifwasweapon SHOTSPARK1 palfrom 24 48
  2052.         else ifwasweapon FREEZEBLAST
  2053.         {
  2054.             palfrom 32 32
  2055.         ifwasweapon FREEZEBLAST { spawn BURNING }
  2056.         }
  2057.         else ifwasweapon COOLEXPLOSION1 palfrom 48 48 0 48
  2058.         else ifwasweapon KNEE palfrom 16 32
  2059.         else ifwasweapon FIRELASER palfrom 32 32
  2060.         state check_dead_thrown_back
  2061.         state random_wall_jibs
  2062.  
  2063.         break
  2064.     }
  2065.  
  2066.     ifaction PFLINTCHING
  2067.     {
  2068.         ifactioncount 2 action PSTAND
  2069.         break
  2070.     }
  2071.  
  2072.     ifinwater
  2073.     {
  2074.         ifaction PTREDWATER
  2075.         {
  2076.             ifp pwalking prunning action PSWIMMINGGO
  2077.         }
  2078.         else ifp pstanding pwalkingback prunningback action PTREDWATER
  2079.         else
  2080.         {
  2081.             ifaction PSWIMMING
  2082.             {
  2083.                 ifrnd 4 spawn WATERBUBBLE
  2084.                 ifactioncount 4
  2085.                     action PSWIMMINGWAIT
  2086.             }
  2087.             else ifaction PSWIMMINGWAIT
  2088.             {
  2089.                 ifactioncount 2
  2090.                     action PSWIMMINGGO
  2091.             }
  2092.             else ifaction PSWIMMINGGO
  2093.             {
  2094.                 ifactioncount 2
  2095.                     action PSWIMMING
  2096.             }
  2097.             else action PTREDWATER
  2098.         }
  2099.  
  2100.         ifrnd 4 spawn WATERBUBBLE // For effect
  2101.  
  2102.         break
  2103.     }
  2104.     else ifp pjetpack
  2105.     {
  2106.         ifaction PJPHOUVER
  2107.         {
  2108.             ifactioncount 4
  2109.                 resetactioncount
  2110.         }
  2111.         else action PJPHOUVER
  2112.         break
  2113.     }
  2114.     else
  2115.     {
  2116.         ifaction PTREDWATER action PSTAND
  2117.         ifaction PSWIMMING action PSTAND
  2118.         ifaction PSWIMMINGWAIT action PSTAND
  2119.         ifaction PSWIMMINGGO action PSTAND
  2120.         ifaction PJPHOUVER action PFALLING
  2121.     }
  2122.  
  2123.     ifaction PFALLING
  2124.     {
  2125.         ifp ponground
  2126.             action PSTAND
  2127.         else
  2128.         {
  2129.             ifp pfalling break
  2130.             else state check_pstandard
  2131.         }
  2132.     }
  2133.  
  2134.     ifaction PDUCKING
  2135.     {
  2136.         ifgapzl 48
  2137.         {
  2138.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  2139.         }
  2140.         else ifp pducking
  2141.         {
  2142.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  2143.         }
  2144.         else
  2145.         {
  2146.             ifp pstanding action PSTAND
  2147.             else state check_pstandard
  2148.         }
  2149.     }
  2150.  
  2151.     else ifaction PCRAWLING
  2152.     {
  2153.         ifgapzl 48
  2154.         {
  2155.             ifp pstanding action PCRAWLING
  2156.         }
  2157.         else ifp pducking
  2158.         {
  2159.             ifp pstanding action PDUCKING
  2160.         }
  2161.         else
  2162.         {
  2163.             ifp pstanding action PSTAND
  2164.             else state check_pstandard
  2165.         }
  2166.     }
  2167.     else ifgapzl 48 action PDUCKING
  2168.  
  2169.     else ifaction PJUMPING
  2170.     {
  2171.         ifp ponground action PSTAND
  2172.         else ifactioncount 4 ifp pfalling action PFALLING
  2173.     }
  2174.  
  2175.     ifp pfalling action PFALLING
  2176.     else ifaction PSTAND state check_pstandard
  2177.     else ifaction PAKICKING
  2178.     {
  2179.         ifactioncount 2 action PSTAND
  2180.         break
  2181.     }
  2182.     else ifaction PWALK
  2183.     {
  2184.         ifp pfalling action PFALLING
  2185.         else ifp pstanding action PSTAND
  2186.         else ifp prunning action PRUN
  2187.         else ifp pwalkingback action PWALKBACK
  2188.         else ifp prunningback action PRUNBACK
  2189.         else ifp pjumping
  2190.             action PJUMPING
  2191.         else ifp pducking action PDUCKING
  2192.     }
  2193.  
  2194.     else ifaction PRUN
  2195.     {
  2196.         ifp pstanding action PSTAND
  2197.         else ifp pwalking action PWALK
  2198.         else ifp pwalkingback action PWALKBACK
  2199.         else ifp prunningback action PRUNBACK
  2200.         else ifp pjumping
  2201.             action PJUMPING
  2202.         else ifp pducking action PDUCKING
  2203.     }
  2204.  
  2205.     else ifaction PWALKBACK
  2206.     {
  2207.         ifp pstanding action PSTAND
  2208.         else ifp pwalking action PWALK
  2209.         else ifp prunning action PRUN
  2210.         else ifp prunningback action PRUNBACK
  2211.         else ifp pjumping
  2212.             action PJUMPING
  2213.         else ifp pducking action PDUCKING
  2214.     }
  2215.  
  2216.     else ifaction PRUNBACK
  2217.     {
  2218.         ifp pstanding action PSTAND
  2219.         else ifp pwalking action PWALK
  2220.         else ifp prunning action PRUN
  2221.         else ifp pwalkingback action PWALKBACK
  2222.         else ifp pjumping
  2223.             action PJUMPING
  2224.         else ifp pducking action PDUCKING
  2225.     }
  2226. enda
  2227.  
  2228. actor ORGANTIC TURRETSTRENGTH
  2229.     ifcount 48 resetcount
  2230.     else { ifcount 32 sizeto 32 32 }
  2231.     else ifcount 16 { sizeto 48 18 ifpdistl 2048 { sound TURR_ATTACK addphealth -2 palfrom 32 16 } }
  2232.     ifhitweapon { ifdead { addkills 1 sound TURR_DYING guts JIBS5 10 state delete_enemy } sound TURR_PAIN break }
  2233.     ifrnd 1 soundonce TURR_ROAM
  2234. enda
  2235.  
  2236. state rf
  2237.     ifrnd 128 cstat 4
  2238.     else cstat 0
  2239. ends
  2240.  
  2241. action ATROOPWALKING 0    4    5    1   12
  2242. move SHRUNKVELS 32
  2243. move TROOPWALKVELS 72
  2244. ai AITROOPSEEKENEMY  ATROOPWALKING   TROOPWALKVELS seekplayer
  2245.  
  2246. state checksquished
  2247.     ifsquished { addkills 1 sound SQUISHED state standard_jibs spawn OOZ state delete_enemy }
  2248. ends
  2249.  
  2250.  
  2251. state spawnstuff
  2252. ifrnd 128
  2253.     {
  2254.     ifrnd 128 { spawn COLA }
  2255.     else
  2256.         {
  2257.         ifrnd 128 { spawn SIXPAK }
  2258.         else { ifrnd 10 { spawn FIRSTAID } }
  2259.         }
  2260.     }
  2261. else
  2262.     {
  2263.     ifrnd 128 { spawn AMMO }
  2264.     else
  2265.         {
  2266.         ifrnd 128 { spawn SHIELD }
  2267.         else
  2268.             {
  2269.             ifrnd 64 { spawn SHOTGUNAMMO }
  2270.             else
  2271.             {
  2272.                 ifrnd 32 { spawn BATTERYAMMO }
  2273.                 else
  2274.                     {
  2275.                     ifrnd 16 { spawn RPGAMMO }
  2276.                     }
  2277.                 }
  2278.             }
  2279.         ifrnd 8 { spawn FREEZEAMMO }
  2280.         }
  2281.     }
  2282. ends
  2283.  
  2284.  
  2285.  
  2286.  
  2287.  
  2288.  
  2289. //
  2290. //
  2291. //      TROOP/LIZTROOP CODE
  2292. //
  2293. //
  2294.  
  2295. action ASERVRUN         2110    7     5     1     9
  2296. action ASERVPREPFIRE    2150    2     5     1     20
  2297. action ASERVFIRE        2155    2     5     1     15
  2298. action ASERVPREPJUMP    2165    1     5
  2299. action ASERVPREPJUMP2   2170    1     5
  2300. action ASERVJUMP        2175    2     5     1     50
  2301. action ASERVBAFFE       2210    5     5     1     25
  2302. action ASERVHIT         2200    1     5
  2303. action ASERVHIT2        2205    1     5
  2304. action ASERVDYING       2185    3     5     1     35
  2305. action ASERVDEAD        2195    1     5 
  2306. action ASERVPREPDODGE   2230    4     5     1     15 
  2307. action ASERVDODGE       2235    3     5     1     15
  2308.  
  2309. move SERVRUNVELS 160
  2310. move SERVJUMPVELS 350
  2311. move SERVSTOPVELS 0
  2312. move SERVDODGEVELS 250
  2313.  
  2314. ai AISERVDODGE ASERVPREPDODGE SERVDODGEVELS dodgebullet
  2315. ai AISERVBAFFE ASERVBAFFE SERVSTOPVELS faceplayer
  2316. ai AISERVHIT ASERVHIT SERVSTOPVELS faceplayer
  2317. ai AISERVRUN ASERVRUN SERVRUNVELS seekplayer
  2318. ai AISERVPREPFIRE ASERVPREPFIRE SERVSTOPVELS faceplayer
  2319. ai AISERVFIRE ASERVFIRE SERVSTOPVELS faceplayer
  2320. ai AISERVPREPJUMP ASERVPREPJUMP SERVSTOPVELS faceplayer
  2321. ai AISERVJUMP ASERVJUMP SERVJUMPVELS jumptoplayer
  2322. ai AISERVDYING ASERVDYING SERVSTOPVELS
  2323.  
  2324.  
  2325. state checkservhitstate
  2326.     spawn BLOOD
  2327.     ifdead
  2328.     {
  2329.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  2330.       state random_wall_jibs
  2331.         addkills 1
  2332.             ifspritepal 24 { spawn SHOTGUNAMMO }
  2333.         state spawnstuff
  2334.         ifwasweapon RADIUSEXPLOSION { sound SQUISHED state delete_enemy }
  2335.         else
  2336.         {
  2337.         ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  2338.         else
  2339.             {
  2340.             soundonce PIG_DYING
  2341.             }
  2342.         }
  2343.       ifwasweapon FREEZEBLAST { spawn BURNING }
  2344.  
  2345.     ai AISERVDYING
  2346.     spawn BLOODPOOL
  2347.      }
  2348.     else
  2349.     {
  2350.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  2351.       ifrnd 64 { soundonce PIG_PAIN }
  2352.     ifai AISERVHIT { }
  2353.     else
  2354.         {
  2355.         ifai AISERVDODGE { }
  2356.         else
  2357.             {
  2358.             ifai AISERVFIRE
  2359.                 {
  2360.                 ifrnd 64 { action ASERVHIT2 }
  2361.                 }
  2362.             else
  2363.                 {
  2364.                 ai AISERVHIT
  2365.                 ifrnd 128 { action ASERVHIT }
  2366.                 else { action  ASERVHIT2 }
  2367.                 }
  2368.             }
  2369.         ifspritepal 24 { ifrnd 32 { ifwasweapon SHOTSPARK1 { ai AISERVHIT action ASERVHIT2 } } }
  2370.         else { ifwasweapon SHOTSPARK1 { ai AISERVHIT action ASERVHIT2 } }
  2371.         }
  2372.  
  2373.     ifwasweapon FREEZEBLAST { spawn BURNING }
  2374.  
  2375.         sound PIG_PAIN
  2376.         state random_wall_jibs
  2377.     }
  2378. ends
  2379.  
  2380. actor LIZTROOPSTAYPUT 170 ASERVRUN ai AISERVRUN cactor LIZTROOP enda
  2381.  
  2382. actor LIZTROOP 80 fall
  2383. ifcansee
  2384. sizeto 25 25
  2385. ifaction 0
  2386.     {
  2387.      soundonce PIG_ATTACK
  2388.     ifspritepal 24 { strength 200 }
  2389.     ifspawnedby BOSS3 { spritepal 24 strength 270 }
  2390.     ai AISERVRUN
  2391.     }
  2392.  
  2393. ifactornotstayput
  2394. {
  2395. ifai AISERVDYING
  2396.     {
  2397.     ifactioncount 3 { action ASERVDEAD }
  2398.     else
  2399.         {
  2400.              strength 0 
  2401.         cstat 0 
  2402.         ifhitweapon
  2403.             {
  2404.             ifwasweapon FREEZEBLAST { spawn BURNING }
  2405.             ifwasweapon KNEE { sound SQUISHED killit } 
  2406.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED killit } 
  2407.             }
  2408.         ifaction ASERVDEAD { }
  2409.         else { spawn BLOOD }
  2410.         }
  2411.     }
  2412. else
  2413.     {
  2414.     ifai AISERVDODGE
  2415.         {
  2416.         ifactioncount 4 { action ASERVDODGE }
  2417.         ifcount 30 { ai AISERVFIRE }
  2418.         }
  2419.     else
  2420.         {
  2421.         ifrnd 4 { ifcanshoottarget { ai AISERVPREPFIRE } }
  2422.         ifrnd 1 { ifrnd 128 { ai AISERVPREPJUMP } }
  2423.  
  2424.         ifai AISERVHIT { }
  2425.         else { ifbulletnear { ai AISERVDODGE } }
  2426.         }
  2427.  
  2428.     ifai AISERVBAFFE { }
  2429.     else { ifpdistl 3500 { ifrnd 3 { ai AISERVPREPJUMP } } }
  2430.  
  2431.     ifai AISERVBAFFE { }
  2432.     else { ifpdistl 1000 { ifcanshoottarget { ai AISERVBAFFE } } }
  2433.  
  2434.     ifai AISERVRUN { ifp phigher    { ai AISERVPREPJUMP } }
  2435.  
  2436.     ifai AISERVBAFFE 
  2437.         {
  2438.         ifcanshoottarget
  2439.             {
  2440.             ifpdistl 1000
  2441.                     {
  2442.                     ifactioncount 3
  2443.                         {
  2444.                         ifspritepal 24 { addphealth -20 }
  2445.                         else { addphealth -13 }
  2446.                         wackplayer
  2447.                         palfrom 32 32
  2448.                         resetactioncount
  2449.                         }
  2450.                     }
  2451.             else { ai AISERVRUN }
  2452.             }
  2453.         }
  2454.  
  2455.     ifai AISERVHIT { ifcount 20 { ai AISERVRUN } }
  2456.  
  2457.     ifai AISERVPREPJUMP
  2458.         {
  2459.         ifaction ASERVPREPJUMP { ifcount 7 { action ASERVPREPJUMP2 } }
  2460.         ifaction ASERVPREPJUMP2 { ifcount 2 { ai AISERVJUMP } }
  2461.         }
  2462.  
  2463.     ifai AISERVJUMP
  2464.         {
  2465.         ifpdistl 1100
  2466.             {
  2467.             ifspritepal 24 { addphealth -30 }
  2468.             else { addphealth -20 }
  2469.             wackplayer
  2470.             palfrom 32 32
  2471.             }
  2472.  
  2473.         ifcount 30
  2474.             {
  2475.             iffloordistl 2 { action ASERVPREPJUMP2 }
  2476.             ifaction ASERVPREPJUMP2 { ifcount 5 ai AISERVRUN }
  2477.             }
  2478.         }
  2479.  
  2480.     ifai AISERVPREPFIRE { ifactioncount 2 { resetactioncount ai AISERVFIRE     shoot FIRELASER } }
  2481.  
  2482.     ifai AISERVFIRE
  2483.     {
  2484.         ifspritepal 24 { ifcount 30 { ai AISERVRUN } }
  2485.         else { ifcount 20 { ai AISERVRUN } }    
  2486.  
  2487.         ifactioncount 2
  2488.             {
  2489.             sound PRED_ATTACK
  2490.             ifspritepal 24 { shoot FIRELASER shoot FIRELASER }
  2491.             else { shoot FIRELASER }
  2492.             resetactioncount
  2493.             }
  2494.     }
  2495.  
  2496. ifhitweapon state checkservhitstate
  2497.  
  2498. }
  2499. }
  2500. else
  2501. {
  2502. ifai AISERVDYING
  2503.     {
  2504.     ifactioncount 3 { action ASERVDEAD }
  2505.     else
  2506.         {
  2507.              strength 0 
  2508.         ifhitweapon
  2509.             {
  2510.             ifwasweapon FREEZEBLAST { spawn BURNING }
  2511.             ifwasweapon KNEE { sound SQUISHED killit } 
  2512.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED killit } 
  2513.             }
  2514.         ifaction ASERVDEAD { }
  2515.         else { spawn BLOOD }
  2516.         }
  2517.     }
  2518. else
  2519.     {
  2520.     ifai AISERVDODGE { ai AISERVFIRE }
  2521.     else
  2522.         {
  2523.         ifrnd 4 { ifcanshoottarget { ai AISERVPREPFIRE } }
  2524.         }
  2525.  
  2526.     ifai AISERVBAFFE { }
  2527.     else { ifpdistl 1000 { ifcanshoottarget { ai AISERVBAFFE } } }
  2528.  
  2529.     ifai AISERVBAFFE 
  2530.         {
  2531.         ifpdistl 1000 { ifactioncount 3
  2532.                     {
  2533.                     addphealth -15
  2534.                     wackplayer
  2535.                     palfrom 32 32
  2536.                     resetactioncount
  2537.                     }
  2538.                 }
  2539.         }
  2540.  
  2541.     ifai AISERVHIT { ifcount 20 { ai AISERVPREPFIRE } }
  2542.  
  2543.  
  2544.     ifai AISERVPREPFIRE
  2545.         {
  2546.         ifcanshoottarget
  2547.             {
  2548.             ifactioncount 2 { resetactioncount ai AISERVFIRE }
  2549.             }
  2550.         }
  2551.  
  2552.     ifai AISERVFIRE
  2553.     {
  2554.         ifcount 20 { ai AISERVPREPFIRE }
  2555.         else    
  2556.         {
  2557.         ifactioncount 2
  2558.             {
  2559.             sound PRED_ATTACK
  2560.             shoot FIRELASER resetactioncount
  2561.             }
  2562.         }
  2563.     }
  2564.  
  2565. ifhitweapon state checkservhitstate
  2566.  
  2567.  
  2568. }
  2569. ifai AISERVFIRE
  2570.     {
  2571.     ifactioncount 2
  2572.         {
  2573.         sound PRED_ATTACK
  2574.         shoot FIRELASER
  2575.         resetactioncount
  2576.         }
  2577.     ifrnd 4 { ai AISERVRUN }
  2578.     }
  2579.  
  2580. ifai AISERVRUN
  2581.     {
  2582.     ifrnd 4 { ai AISERVFIRE }
  2583.     }
  2584. }
  2585. ifaction ASERVDEAD { }
  2586. else { ifrnd 1 { soundonce PIG_ATTACK } }
  2587. enda
  2588.  
  2589. // **********************
  2590.  
  2591. // **********************
  2592.  
  2593.  
  2594. action ACYBRPGWALKING       0     4    5    1    20
  2595. action ACYBRPGPREPFIRE     20    3    5    1    20
  2596. action ACYBRPGFIRE         30    1    5    1    128
  2597. action ACYBRPGFIRE2        35    1    5    1    40
  2598.  
  2599.  
  2600. action ACYBSWPROTCLOAK     94    1    5
  2601. action ACYBSWJUMPCLOAK    -40    1    5
  2602. action ACYBSWJUMP2CLOAK   -35    1    5
  2603. action ACYBSWCLOAK        -30    2    5    1    16
  2604. action ACYBSWWALKING       40    4    5    1    16
  2605. action ACYBSWATTACK        60    4    5    1    20
  2606. action ACYBSWPROT          -5    1    5
  2607. action ACYBSWJUMP          -20   1    5
  2608. action ACYBSWJUMP2         -15   1    5
  2609. action ACYBSWJUMP3         -10   1    5
  2610.  
  2611. action ACYBFLYWALK        -190   4    5    1    16
  2612. action ACYBFLYTIR1        -145   1    5
  2613. action ACYBFLYTIR2        -140   1    5
  2614. action ACYBFLYTIR3        -170   1    5
  2615. action ACYBFLYTIR         -170   2    5    1     7
  2616. action ACYBFLY1           -135   1    5
  2617. action ACYBFLY2           -130   1    5
  2618. action ACYBFLY3           -125   1    5
  2619. action ACYBFLYATTACK      -135   1    5
  2620. action ACYBFLYDOWN        -135   1    5
  2621. action ACYBFLYPROT1       -100   1    5
  2622. action ACYBFLYPROT2       -95    1    5
  2623. action ACYBFLYPROT3       -80    1    1
  2624.  
  2625.  
  2626. move CYBRPGWALKVEL 100
  2627. move CYBRPGRUNVEL 192
  2628. move CYBSTOP
  2629.  
  2630. move CYBSWWALKVEL 140
  2631. move CYBSWJUMPVEL 200
  2632.  
  2633. move CYBFLYWALKVEL    120
  2634. move CYBFLYUPVEL      0     -100      
  2635. move CYBFLYUP1VEL     140   -100
  2636. move CYBFLYUP2VEL     220   -100
  2637. move CYBFLYUP3VEL     350   -100
  2638. move CYBFLYDOWNVEL    70    10
  2639. move CYBFLYDOWN1VEL   140   100
  2640. move CYBFLYDOWN2VEL   220   100
  2641. move CYBFLYDOWN3VEL   350   100
  2642. move CYBFLYSTOPUPVEL  0     -100
  2643.  
  2644. ai AICYBRPGGETENEMY ACYBRPGWALKING CYBRPGWALKVEL seekplayer
  2645. ai AICYBRPGPREPFIRE ACYBRPGPREPFIRE CYBSTOP faceplayerslow
  2646. ai AICYBRPGFLEE ACYBRPGWALKING CYBRPGWALKVEL randomangle
  2647. ai AICYBRPGFIRE ACYBRPGFIRE CYBSTOP faceplayerslow
  2648. ai AICYBRPGFIRE2 ACYBRPGFIRE2 CYBSTOP faceplayer
  2649.  
  2650. ai AICYBSWSEARCH ACYBSWWALKING CYBSWWALKVEL seekplayer
  2651. ai AICYBSWATTACK ACYBSWATTACK CYBSTOP faceplayerslow
  2652. ai AICYBSWPROT ACYBSWPROT CYBSTOP faceplayer
  2653. ai AICYBSWJUMP ACYBSWJUMP CYBSTOP faceplayerslow
  2654. ai AICYBSWJUMP2 ACYBSWJUMP2 CYBSWJUMPVEL jumptoplayer
  2655. ai AICYBSWPROTCLOAK ACYBSWPROTCLOAK CYBSTOP faceplayer
  2656. ai AICYBSWJUMP2CLOAK ACYBSWJUMPCLOAK CYBSWJUMPVEL jumptoplayer
  2657.  
  2658. ai AICYBFLYWALK ACYBFLYWALK CYBFLYWALKVEL seekplayer
  2659. ai AICYBFLYTIR ACYBFLYTIR1 CYBSTOP faceplayerslow
  2660. ai AICYBFLY ACYBFLY1 CYBFLYUP1VEL seekplayer
  2661. ai AICYBFLY2 ACYBFLY1 CYBFLYUP1VEL randomangle
  2662. ai AICYBFLYPROT ACYBFLYPROT1 CYBSTOP
  2663.  
  2664. state checkcybhitstate
  2665.     ifdead
  2666.     {
  2667.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  2668.       ifwasweapon FREEZEBLAST { spawn BURNING }
  2669.  
  2670.     ifspritepal 0 { ifrnd 128 { spawn RPGAMMO } }
  2671.  
  2672.     ifspritepal 9
  2673.         {
  2674.         ifai AICYBFLYPROT { strength 70 break }
  2675.         state spawnstuff
  2676.         }
  2677.  
  2678.     ifspritepal 3
  2679.         {
  2680.         ifrnd 70 { spawn COLA }
  2681.         else { ifrnd 70 { spawn SHIELD } }
  2682.         }
  2683.  
  2684.       addkills 1
  2685.     state liz_body_jibs 
  2686.       hitradius 1500 2 5 8 10
  2687.     sound RPG_EXPLODE
  2688.     soundonce TURR_DYING
  2689.     spawn BURNING
  2690.     spawn EXPLOSION2BOT
  2691.     killit
  2692.         ifwasweapon RPG { hitradius 1500 2 5 8 10 sound SQUISHED state liz_body_jibs state delete_enemy }
  2693.         else ifwasweapon RADIUSEXPLOSION { hitradius 1500 2 5 8 10 sound SQUISHED state liz_body_jibs state delete_enemy }
  2694.     else { sound RPG_EXPLODE hitradius 1500 2 5 8 10 spawn EXPLOSION2    killit }
  2695.     }
  2696.     else
  2697.     {
  2698.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  2699.     ifspritepal 3
  2700.         {
  2701.         ifaction ACYBSWCLOAK
  2702.             {
  2703.             ifrnd 128 { ai AICYBSWPROTCLOAK }
  2704.             }
  2705.         ifaction ACYBSWJUMPCLOAK
  2706.             {
  2707.             ifrnd 128 { ai AICYBSWPROTCLOAK }
  2708.             }
  2709.         ifaction ACYBSWJUMP2CLOAK
  2710.             {
  2711.             ifrnd 128 { ai AICYBSWPROTCLOAK }
  2712.             }
  2713.         ifaction ACYBSWWALKING
  2714.             {
  2715.             ifrnd 128 { ai AICYBSWPROT }
  2716.             }
  2717.         ifaction ACYBSWJUMP
  2718.             {
  2719.             ifrnd 128 { ai AICYBSWPROT }
  2720.             }
  2721.         ifaction ACYBSWJUMP2
  2722.             {
  2723.             ifrnd 128 { ai AICYBSWPROT }
  2724.             }
  2725.         ifaction ACYBSWJUMP3
  2726.             {
  2727.             ifrnd 128 { ai AICYBSWPROT }
  2728.             }
  2729.         }
  2730.       ifwasweapon FREEZEBLAST { spawn BURNING }
  2731.     else
  2732.         {
  2733.         ifwasweapon RADIUSEXPLOSION { }
  2734.         else { ifrnd 100 { soundonce TURR_RECOG } }
  2735.         }
  2736.     }
  2737. ends
  2738.  
  2739. state cybaction
  2740.     {
  2741.     ifpdistl 5000 { ai AICYBRPGFLEE break }
  2742.     else
  2743.         {
  2744.         ifpdistl 14000
  2745.             {
  2746.             ifcansee
  2747.                 {
  2748.                 ifcanshoottarget
  2749.                     {
  2750.                     ifai  AICYBRPGFIRE { break }
  2751.                     else { ifrnd 4 { ai AICYBRPGPREPFIRE break } }
  2752.                     }
  2753.                 else { ai AICYBRPGGETENEMY break }
  2754.                 }
  2755.             }
  2756.         else
  2757.             {
  2758.             ifai AICYBRPGGETENEMY { soundonce TURR_ROAM }
  2759.             else { ai AICYBRPGGETENEMY break }
  2760.             }
  2761.         }
  2762.  
  2763.     }
  2764. ends
  2765.  
  2766. state cybaction2
  2767.     {
  2768.     ifpdistl 5000 { ai AICYBRPGFLEE break }
  2769.     else
  2770.         {
  2771. //        ifpdistl 14000
  2772. //            {
  2773.             ifcansee
  2774.                 {
  2775.                 ifcanshoottarget
  2776.                     {
  2777.                     ifai  AICYBRPGFIRE { break }
  2778.                     else { ifrnd 4 { ai AICYBRPGPREPFIRE break } }
  2779.                     }
  2780.                 else { ai AICYBRPGGETENEMY break }
  2781.                 }
  2782. //            }
  2783. //        else
  2784. //            {
  2785. //            ifai AICYBRPGGETENEMY { soundonce TURR_ROAM }
  2786. //            else { ai AICYBRPGGETENEMY break }
  2787. //            }
  2788.         }
  2789.  
  2790.     }
  2791. ends
  2792.  
  2793. actor LIZMANSPITTING 150 ai AICYBRPGFIRE2 cactor LIZMAN enda
  2794. actor LIZMANSTAYPUT 150 ai AICYBRPGFIRE2 cactor LIZMAN enda
  2795. actor LIZMANJUMP 150 ai AICYBFLYWALK spritepal 9 cactor LIZMAN enda
  2796.  
  2797. actor LIZMAN 80 fall
  2798. ifcansee
  2799. ifaction 0
  2800.     {
  2801.     ifspritepal 0 { strength 150 ai AICYBRPGGETENEMY }
  2802.     ifspritepal 3 { strength 200 ai AICYBSWSEARCH }
  2803.     ifspritepal 5 { spritepal 3 strength 200 ai AICYBSWSEARCH action ACYBSWCLOAK }
  2804.     ifspritepal 9 { strength 150 ai AICYBFLYWALK }
  2805.     }
  2806.  
  2807.  
  2808. ifspritepal 9
  2809. {
  2810. sizeto 30 30
  2811.  
  2812. ifai AICYBFLYPROT
  2813.     {
  2814.     ifaction ACYBFLYPROT1
  2815.         {
  2816.         ifcount 10 { action ACYBFLYPROT2  resetcount }
  2817.         }
  2818.  
  2819.     ifaction ACYBFLYPROT2
  2820.         {
  2821.         ifcount 10 { action ACYBFLYPROT3  resetcount }
  2822.         }
  2823.  
  2824.     ifaction ACYBFLYPROT3
  2825.         {
  2826.         ifbulletnear { }
  2827.         else
  2828.             {
  2829.             ifcansee { ifrnd 1 { ai AICYBFLYWALK } }
  2830.             else { ai AICYBFLYWALK }
  2831. //            ifhitspace { ai AICYBFLYWALK }
  2832.             }
  2833.         }
  2834.  
  2835.     }
  2836. else
  2837. {
  2838.  ifhitweapon state checkcybhitstate
  2839. ifai AICYBFLYWALK
  2840.     {
  2841.     soundonce TURR_ROAM
  2842.     ifpdistl 2000 { ai AICYBFLYTIR }
  2843.     
  2844.     ifbulletnear { ifrnd 8 { ai AICYBFLYPROT } }
  2845.     ifrnd 1 { ifrnd 64 { ai AICYBFLYPROT } }
  2846. //    ifhitspace { ai AICYBFLYPROT }
  2847.  
  2848.  
  2849.     iffloordistl 30 { }
  2850.     else { ai AICYBFLY action ACYBFLY3 }
  2851.  
  2852.     ifcansee
  2853.         {
  2854.         ifrnd 4 { ai AICYBFLYTIR }
  2855.         }
  2856.     ifp phigher
  2857.         {
  2858.         ifp pjetpack { }
  2859.         else
  2860.             {
  2861.             ifgapzl 150 { }
  2862.             else { ifcount 30 { sound DUKE_JETPACK_ON ai AICYBFLY } }
  2863.             }
  2864.         }
  2865.     
  2866.     ifrnd 1
  2867.         {
  2868.         ifrnd 128 { ai AICYBFLY }
  2869. //        else { ai AICYBFLY2 }
  2870.         }
  2871.  
  2872.     }
  2873.  
  2874. ifai AICYBFLY2
  2875.     {
  2876.     ifaction ACYBFLY1
  2877.         {
  2878. //        ifcount 10 { move CYBFLYUP3VEL }
  2879. //        ifcount 50 { action ACYBFLY3 move CYBFLYDOWNVEL }
  2880.         }
  2881.     ifaction ACYBFLY3 { iffloordistl 50 { ai AICYBFLYWALK } }
  2882.     }
  2883.  
  2884.  
  2885. ifai AICYBFLY
  2886.     {
  2887.     soundonce DUKE_JETPACK_IDLE 
  2888.     ifaction ACYBFLY1
  2889.         {
  2890.         ifp phigher { }
  2891.         else
  2892.             {
  2893. //            ifcount 100 { ifrnd 128 { action ACYBFLY3 move CYBFLYDOWNVEL randomangle } }
  2894.             ifrnd 1 { ifrnd 128 { action ACYBFLY3 move CYBFLYDOWNVEL randomangle } }
  2895.             ifcount 20
  2896.                 {
  2897.                 ifpdistl 12000 { action ACYBFLYATTACK move CYBSTOP faceplayerslow getv }
  2898.                 }
  2899.             }
  2900.         }
  2901.  
  2902.     ifaction ACYBFLYATTACK
  2903.         {
  2904.         ifcansee
  2905.             {
  2906.             ifcount 20
  2907.                 {
  2908.                 action ACYBFLY2
  2909.                 move CYBSTOP faceplayerslow getv
  2910.                 resetcount
  2911.                 }
  2912.             }
  2913.         ifrnd 8 { action ACYBFLY1 move CYBFLYUP1VEL seekplayer }
  2914.  
  2915.         ifpdistl 12000 { }
  2916.         else { action ACYBFLY1 move CYBFLYUP1VEL seekplayer }
  2917.         }
  2918.  
  2919.     ifaction ACYBFLY2
  2920.         {
  2921.         ifcount 20 { shoot MORTER action ACYBFLYATTACK resetcount move CYBFLYUP1VEL seekplayer }
  2922.         }
  2923.  
  2924.     ifaction ACYBFLYDOWN
  2925.         {
  2926.         ifcount 50 { action ACYBFLY1 move CYBFLYUP1VEL }
  2927.         iffloordistl 50 { action ACYBFLY1 move CYBFLYUP1VEL }
  2928.         }
  2929.  
  2930.  
  2931.     ifaction ACYBFLY3
  2932.         {
  2933.         iffloordistl 30 { soundonce DUKE_JETPACK_OFF ai AICYBFLYWALK }
  2934.         }
  2935.  
  2936.     }
  2937.  
  2938.  
  2939.  
  2940. ifai AICYBFLYTIR
  2941.     {
  2942.     ifbulletnear { ifrnd 8 { ai AICYBFLYPROT } }
  2943.     ifp phigher
  2944.         {
  2945.         ifp pjetpack { }
  2946.         else
  2947.             {
  2948.             ifgapzl 150 { }
  2949.             else { ifcount 40 { ai AICYBFLY } }
  2950.             }
  2951.         }
  2952.     ifaction ACYBFLYTIR1
  2953.         {
  2954.         soundonce TURR_ATTACK
  2955.         ifcount 10 { action ACYBFLYTIR2 resetcount }
  2956.         }
  2957.     ifaction ACYBFLYTIR2
  2958.         {
  2959.         ifcount 10 { action ACYBFLYTIR3 resetcount }
  2960.         }
  2961.     ifaction ACYBFLYTIR3
  2962.         {
  2963.         ifcount 20 { action ACYBFLYTIR resetcount }
  2964.         }
  2965.     ifaction ACYBFLYTIR
  2966.         {
  2967.         ifcansee 
  2968.             {
  2969.             ifrnd 8 { ai AICYBFLYWALK }
  2970.             ifactioncount 2 { shoot COOLEXPLOSION1 sound COMM_ATTACK resetactioncount action ACYBFLYTIR3 resetcount }
  2971. //            ifcount 10 { action ACYBFLYTIR3 resetcount }
  2972.             }
  2973.         else { ai AICYBFLYWALK }
  2974.         }
  2975.     }
  2976.  
  2977. }
  2978. }
  2979.  
  2980.  
  2981.  
  2982. ifactornotstayput
  2983. {
  2984.  
  2985. ifspritepal 3
  2986.     sizeto 40 35
  2987.  
  2988.     {
  2989.     ifhitweapon state checkcybhitstate
  2990.  
  2991.     ifai AICYBSWSEARCH
  2992.         {
  2993.         ifaction ACYBSWWALKING { ifrnd 1 { action ACYBSWCLOAK } }
  2994.         ifaction ACYBSWCLOAK { ifrnd 4 { action ACYBSWWALKING action ACYBSWCLOAK } }
  2995.  
  2996.         soundonce TURR_ROAM
  2997.         ifp phigher { ai AICYBSWJUMP }
  2998.         ifpdistl 1100
  2999.             {
  3000.             ifcansee { ifcanshoottarget { ai AICYBSWATTACK } }
  3001.             }
  3002.         ifrnd 1
  3003.             {
  3004.             ifaction ACYBSWCLOAK { ai AICYBSWJUMP action ACYBSWJUMPCLOAK }
  3005.             else { ai AICYBSWJUMP }
  3006.             }
  3007.         }
  3008.     
  3009.     ifai AICYBSWJUMP
  3010.         {
  3011.         ifaction ACYBSWJUMPCLOAK { ifcount 10 { ai AICYBSWJUMP2CLOAK } }
  3012.         else { ifcount 10 { ai AICYBSWJUMP2 } }
  3013.         }
  3014.  
  3015.     ifai AICYBSWJUMP2CLOAK
  3016.         {
  3017.         ifcount 10 { action ACYBSWJUMP2CLOAK }
  3018.         iffloordistl 20 { action ACYBSWJUMP2CLOAK }
  3019.         ifaction ACYBSWJUMP2CLOAK
  3020.             {
  3021.             iffloordistl 10 { ifcount 5 { ai AICYBSWSEARCH action ACYBSWCLOAK } }
  3022.             }
  3023.         }
  3024.  
  3025.  
  3026.     ifai AICYBSWJUMP2
  3027.         {
  3028.         ifcount 10 { action ACYBSWJUMP3 }
  3029.         iffloordistl 20 { action ACYBSWJUMP3 }
  3030.         ifaction ACYBSWJUMP3
  3031.             {
  3032.             iffloordistl 10 { ifcount 5 { ai AICYBSWSEARCH } }
  3033.             }
  3034.         }
  3035.  
  3036.     ifai AICYBSWPROT { ifcount 10 { ai AICYBSWSEARCH } }
  3037.  
  3038.     ifai AICYBSWPROTCLOAK { ifcount 7 { ai AICYBSWSEARCH action ACYBSWCLOAK } }
  3039.  
  3040.  
  3041.     ifai AICYBSWATTACK
  3042.         {
  3043.         ifcansee 
  3044.             {
  3045.             ifcanshoottarget
  3046.                 {
  3047.                 ifactioncount 3 { soundonce SLIM_RECOG palfrom 32 32 wackplayer addphealth -15 resetactioncount }
  3048.                 ifactioncount 1 { soundonce TURR_PAIN }
  3049.                 }
  3050.             }
  3051.         ifpdistl 1200 { }
  3052.         else { ai AICYBSWSEARCH }
  3053.         }
  3054.  
  3055.     }
  3056.  
  3057.  
  3058. ifspritepal 0
  3059.     {
  3060.     ifhitweapon state checkcybhitstate
  3061.     ifai AICYBRPGPREPFIRE
  3062.         {
  3063.         soundonce TURR_ATTACK
  3064.         ifactioncount 3 { ai  AICYBRPGFIRE }
  3065.         }
  3066.     
  3067.     ifai AICYBRPGFIRE
  3068.         {
  3069.         state cybaction
  3070.         ifcount 90    { ai AICYBRPGFIRE2 }
  3071.         }
  3072.  
  3073.     ifai AICYBRPGFIRE2
  3074.         {
  3075.         ifactioncount 2 { }
  3076.         else 
  3077.             {
  3078.             ifcount 10 { soundonce RPG_SHOOT shoot RPG ai AICYBRPGFIRE }
  3079.             }
  3080.         }
  3081.  
  3082.     ifai AICYBRPGFLEE
  3083.         {
  3084.         soundonce TURR_ROAM
  3085.         ifpdistl 5000 { ifrnd 1 { ifrnd 128 { ai AICYBRPGPREPFIRE } } }
  3086.         else { ai AICYBRPGPREPFIRE }
  3087.         }
  3088.  
  3089.     ifai AICYBRPGGETENEMY
  3090.         {
  3091.         soundonce TURR_ROAM
  3092.         state cybaction
  3093.         }
  3094.     }
  3095.  
  3096. }
  3097. else
  3098. {
  3099.  
  3100. ifspritepal 0
  3101.     {
  3102.     ifhitweapon state checkcybhitstate
  3103.     ifai AICYBRPGPREPFIRE
  3104.         {
  3105.         soundonce TURR_ATTACK
  3106.         ifactioncount 3 { ai  AICYBRPGFIRE }
  3107.         }
  3108.     
  3109.     ifai AICYBRPGFIRE
  3110.         {
  3111.         state cybaction2
  3112.         ifrnd 1 { ai AICYBRPGFIRE2 }
  3113.         }
  3114.  
  3115.     ifai AICYBRPGFIRE2
  3116.         {
  3117.         ifactioncount 2 { }
  3118.         else 
  3119.             {
  3120.             ifcount 10 { soundonce RPG_SHOOT shoot RPG ai AICYBRPGFIRE }
  3121.             }
  3122.         }
  3123.  
  3124.     ifai AICYBRPGFLEE
  3125.         {
  3126.         soundonce TURR_ROAM
  3127.         ifpdistl 5000 { ifrnd 1 { ifrnd 128 { ai AICYBRPGPREPFIRE move CYBRPGWALKVEL fleeenemy } } }
  3128.         else { ai AICYBRPGPREPFIRE }
  3129.         }
  3130.  
  3131.     ifai AICYBRPGGETENEMY
  3132.         {
  3133.         soundonce TURR_ROAM
  3134.         state cybaction2
  3135.         }
  3136.     }
  3137.  
  3138. }
  3139. enda
  3140.  
  3141.  
  3142.  
  3143. // ********************
  3144. // ****  SENTINEL  ****
  3145. // ********************
  3146.  
  3147.  
  3148. action SENTINELWAIT     1710  1   5   1   45
  3149. action SENTINELRAISE1   1715  1   5   1   45
  3150. action SENTINELRAISE2   1720  1   5   1   45
  3151. action SENTINELARMED    1725  1   5   1   45
  3152. action SENTINELFIRE     1725  2   5   1   7
  3153. action SENTINELHIT1     1740  2   5   1   7
  3154. action SENTINELHIT2     1750  2   5   1   7
  3155. action SENTINELFACE     1710  1   1   1   7
  3156. action ASENTTAS         1735  1   1
  3157.  
  3158. action SENTHURT 1905   1   5 
  3159. action SENTHFIRE 1900   2   5   1   7
  3160.  
  3161.  
  3162. move SENTINELWAITVELS 40 
  3163. move SENTINELRAISEVELS 0 0
  3164. move SENTINELSEEKVELS 60
  3165. move SENTINELRISE 40 -40
  3166. move SENTINELLOWER 32 40
  3167. move SENTINELDEADVELS 100 450
  3168. move SENTINELBULLVELS 252 -80
  3169. move SENTINELHUP 40 -50
  3170. move SENTINELHDOWN 40 50
  3171.  
  3172. ai AISENTTAS ASENTTAS SENTINELRAISEVELS
  3173.  
  3174. ai AISENTINELHUP SENTHURT SENTINELHUP faceplayerslow
  3175. ai AISENTINELHDOWN SENTHURT SENTINELHDOWN faceplayerslow
  3176. ai AISENTINELHFIRE SENTHFIRE SENTINELSEEKVELS seekplayer
  3177. ai AISENTINELDEAD SENTHURT SENTINELDEADVELS randomangle
  3178.  
  3179. ai AISENTINELWAIT SENTINELWAIT SENTINELWAITVELS randomangle
  3180. ai AISENTINELRAISE1 SENTINELRAISE1 SENTINELRAISEVELS seekplayer
  3181. ai AISENTINELRAISE2 SENTINELRAISE2 SENTINELRAISEVELS seekplayer
  3182. ai AISENTINELRAISEH1 SENTINELRAISE1 SENTINELRAISEVELS seekplayer
  3183. ai AISENTINELRAISEH2 SENTINELRAISE2 SENTINELRAISEVELS seekplayer
  3184. ai AISENTINELARMED SENTINELARMED SENTINELRAISEVELS seekplayer
  3185. ai AISENTINELFIRE SENTINELFIRE SENTINELSEEKVELS seekplayer
  3186. ai AISENTINELFIRE2 SENTINELFIRE SENTINELSEEKVELS seekplayer
  3187. ai AISENTINELHIT1 SENTINELHIT1 SENTINELRAISEVELS seekplayer
  3188. ai AISENTINELHIT2 SENTINELHIT2 SENTINELRAISEVELS seekplayer
  3189. ai AISENTINELHIT3 SENTINELHIT2 SENTINELRAISEVELS seekplayer
  3190.  
  3191. state pvertstate
  3192. ifp phigher    { move SENTINELRISE seekplayer }
  3193. else { move SENTINELLOWER seekplayer }
  3194. ends
  3195.  
  3196. state hchecksentinelhitstate
  3197.     ifdead
  3198.     {
  3199.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3200.     stopsound LIZARD_SPIT
  3201.     stopsound RECO_DYING
  3202.     addkills 1
  3203.         spawn EXPLOSION2
  3204.         sound RPG_EXPLODE
  3205.         hitradius 3048 10 20 30 40
  3206.     ai AISENTINELDEAD
  3207.     }
  3208.     else
  3209.     {
  3210.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3211.       debris SCRAP2 1
  3212.     ai AISENTINELHFIRE
  3213.     }
  3214. ends
  3215.  
  3216. state checksentinelhitstate
  3217.     ifdead
  3218.     {
  3219.     strength 250
  3220.     ai AISENTINELHUP
  3221.         spawn EXPLOSION2
  3222.         sound RPG_EXPLODE
  3223.         hitradius 3048 10 20 30 40
  3224.     }
  3225.     else
  3226.     {
  3227.     ifwasweapon RPG { ai AISENTINELFIRE2 }
  3228.       debris SCRAP2 1
  3229.     ifai AISENTINELWAIT { ai AISENTINELHIT1 }
  3230.     ifai AISENTINELARMED { ai AISENTINELHIT2 }  
  3231.     ifai AISENTINELFIRE { ifrnd 75 { ai AISENTINELHIT3 } }
  3232.     }
  3233. ends
  3234.  
  3235. actor DRONE 250
  3236. sizeto 40 40
  3237.  
  3238. ifai AISENTTAS
  3239.     {
  3240.     strength 0
  3241.     cstat 0 
  3242.     ifhitweapon
  3243.         {
  3244.         ifwasweapon FREEZEBLAST { spawn BURNING }
  3245.         ifwasweapon KNEE { killit debris SCRAP1 8 debris SCRAP2 6 debris SCRAP3 7 } 
  3246.         ifwasweapon RADIUSEXPLOSION { killit debris SCRAP1 8 debris SCRAP2 6 debris SCRAP3 7 } 
  3247.         }
  3248.     }
  3249. else { soundonce RECO_ROAM }
  3250.  
  3251.  
  3252. ifcansee
  3253.     ifaction 0 { globalsound LIZARD_BEG ai AISENTINELWAIT }
  3254.  
  3255.     ifai AISENTINELHDOWN
  3256.         {
  3257.         ifrnd 8 { spawn EXPLOSION2 }
  3258.         ifrnd 2 { globalsound LIZARD_SPIT }
  3259.         ifrnd 1 { globalsound RECO_DYING }
  3260.         ifrnd 16 { ai AISENTINELHUP }
  3261.         }
  3262.  
  3263.     ifai AISENTINELHUP
  3264.         {
  3265.         ifrnd 8 { spawn EXPLOSION2 }
  3266.         ifrnd 2 { globalsound LIZARD_SPIT }
  3267.         ifrnd 1 { globalsound RECO_DYING }
  3268.         ifrnd 16 { ai AISENTINELHDOWN }
  3269.         }
  3270.  
  3271.     ifai AISENTINELHFIRE
  3272.         {
  3273.         ifrnd 2 { globalsound LIZARD_SPIT }
  3274.         ifrnd 8 { spawn EXPLOSION2 }
  3275.         ifrnd 8 { state pvertstate } soundonce RECO_ATTACK ifrnd 128 { shoot SHOTSPARK1 }
  3276.         }
  3277.  
  3278.     ifpdistl 12000
  3279.         {
  3280.         ifai AISENTINELHFIRE { ifcanshoottarget { } else ai AISENTINELHUP }
  3281.         ifai AISENTINELHUP { ifcanshoottarget { ai AISENTINELHFIRE } }
  3282.         ifai AISENTINELHDOWN { ifcanshoottarget { ai AISENTINELHFIRE } }
  3283.         ifai AISENTINELFIRE { ifcanshoottarget { } else ai AISENTINELWAIT }
  3284.         ifai AISENTINELFIRE2 { ifcanshoottarget { } else ai AISENTINELWAIT }
  3285.     
  3286.         ifai AISENTINELARMED { ifcanshoottarget { } else ai AISENTINELWAIT }
  3287.  
  3288.         ifcansee
  3289.             {
  3290.             ifcanshoottarget
  3291.                 {
  3292.                 ifcount 10 { ifai AISENTINELWAIT { globalsound DRON_ATTACK1 ai AISENTINELRAISE1 } }
  3293.                     ifcount 9 { ifai AISENTINELRAISE1 ai AISENTINELRAISE2 }
  3294.                     ifcount 8 { ifai AISENTINELRAISE2 ai AISENTINELARMED }
  3295.                 }
  3296.             }
  3297.         }
  3298.  
  3299.     ifai AISENTINELRAISEH1
  3300.         { }
  3301.     else
  3302.         {
  3303.         ifai AISENTINELRAISEH2
  3304.             { }
  3305.         else
  3306.             {
  3307.             ifpdistg 12000
  3308.                 {
  3309.                 ifai AISENTINELHFIRE { ifcanshoottarget { } else ai AISENTINELHUP }
  3310.                 ifcount 10
  3311.                     {
  3312.                     ifai AISENTINELARMED ai AISENTINELRAISE2
  3313.                     ifai AISENTINELFIRE { ifcansee { } else { ai AISENTINELRAISE2 } }
  3314.                     ifai AISENTINELFIRE2 { ifcansee { } else { ai AISENTINELRAISE2 } }
  3315.                     }
  3316.                     ifcount 9 { ifai AISENTINELRAISE2 ai AISENTINELRAISE1 }
  3317.                     ifcount 8 { ifai AISENTINELRAISE1 { globalsound DRON_ATTACK2 ai AISENTINELWAIT } }
  3318.                 }
  3319.             }
  3320.         }
  3321.     
  3322.     ifai AISENTINELARMED
  3323.         {
  3324.         ifcansee
  3325.             {
  3326.             ifcount 64 { move SENTINELSEEKVELS ai AISENTINELFIRE }
  3327.             }
  3328.          }
  3329.  
  3330.     ifai AISENTINELHIT1 { ifcount 5 { ai AISENTINELRAISEH1 } }
  3331.     ifai AISENTINELRAISEH1 { ifcount 5 { ai AISENTINELRAISEH2 } }
  3332.     ifai AISENTINELRAISEH2 { ifcount 5 { ai AISENTINELFIRE } }
  3333.     
  3334.     ifai AISENTINELHIT2 { ifcount 5 { ai AISENTINELFIRE } }
  3335.     ifai AISENTINELHIT3 { ifcount 2 { ai AISENTINELFIRE } }
  3336.  
  3337.     ifai AISENTINELFIRE
  3338.         {
  3339.         ifrnd 1 { globalsound RECO_PAIN }
  3340.         ifrnd 8 { state pvertstate } soundonce RECO_ATTACK shoot SHOTSPARK1
  3341.         }
  3342.     ifai AISENTINELFIRE2
  3343.         {
  3344.         ifrnd 1 { globalsound RECO_PAIN }
  3345.         ifrnd 8 { state pvertstate } sound RECO_ATTACK shoot SHOTSPARK1 shoot SHOTSPARK1
  3346.         }
  3347.  
  3348.       ifhitweapon
  3349.     {
  3350.     ifai AISENTINELHFIRE { state hchecksentinelhitstate }
  3351.     else
  3352.         {
  3353.         ifai AISENTINELHUP { state hchecksentinelhitstate }
  3354.         else
  3355.             {            
  3356.             ifai AISENTINELHDOWN { state hchecksentinelhitstate }
  3357.             else { state checksentinelhitstate }
  3358.             }
  3359.         }
  3360.     }
  3361.  
  3362.  
  3363.     ifai AISENTINELDEAD
  3364.         { 
  3365.         ifrnd 128 { spawn EXPLOSION2 }
  3366.          ifrnd 32 { fall }
  3367.         iffloordistl 20
  3368.             {
  3369.             spawn BURNING
  3370.             spawn EXPLOSION2
  3371.              debris SCRAP1 8
  3372.               debris SCRAP2 6
  3373.               debris SCRAP3 7
  3374.             sound RPG_EXPLODE
  3375.             hitradius 3048 10 20 30 40
  3376.             ai AISENTTAS fall
  3377.             }
  3378.         }
  3379. enda
  3380.  
  3381.  
  3382.  
  3383.  
  3384. // ********************
  3385. // ****  SPIDER  ****
  3386. // ********************
  3387.  
  3388.  
  3389. action ASPIDERATTACK   1880  3  5  1  20
  3390. action ASPIDERATTACK2  1970  2  5  1  20
  3391. action ASPIDERDYING    1895  3  5  1  17
  3392. action ASPIDERDEAD     1905  1  5
  3393. action ASPIDERRUN      1840  5  5  1  10
  3394. action ASPIDERHIT      1890  1  5
  3395. action ASPIDERMONTE    1870  2  5  1  13
  3396. // action ASPIDERHIT      1890  1  5
  3397.  
  3398. action ASPIDERRUNP     1750  5  5  1  13
  3399. action ASPIDERSTOPP    1750  1  5  1  10
  3400. action ASPIDERDOWN     1690  1  5
  3401. action ASPIDERMONTEP   1690  2  5  1  13
  3402.  
  3403. action ASPIDERBRULE    1865  1  1 
  3404. action ASPIDERTAS      1866  1  1
  3405.  
  3406. move SPIDERUP 100 -100
  3407. move SPIDERRUNVELS 230
  3408. move SPIDERSTOPVELS 0 0
  3409. move SPIDERWATERVELS 150 100
  3410.  
  3411. move SPIDERRUNPVELS 180 -100
  3412. move SPIDERDOWNVELS 100 100
  3413.  
  3414. ai AISPIDERATTACK ASPIDERATTACK SPIDERSTOPVELS faceplayer
  3415. ai AISPIDERATTACK2 ASPIDERATTACK2 SPIDERSTOPVELS faceplayer
  3416. ai AISPIDERUP ASPIDERMONTE SPIDERUP seekplayer
  3417. ai AISPIDERSEEK ASPIDERRUN SPIDERRUNVELS seekplayer
  3418. ai AISPIDERDYING ASPIDERDYING SPIDERSTOPVELS
  3419. ai AISPIDERHIT ASPIDERHIT SPIDERSTOPVELS seekplayer
  3420. ai AISPIDERSTOP ASPIDERATTACK SPIDERSTOPVELS 
  3421. ai AISPIDERDEAD ASPIDERDEAD SPIDERSTOPVELS
  3422. ai AISPIDERJUMP ASPIDERRUN SPIDERRUNVELS jumptoplayer
  3423.  
  3424. ai AISPIDERSEEKP ASPIDERRUNP SPIDERRUNPVELS seekplayer
  3425. ai AISPIDERSTOPP ASPIDERSTOPP SPIDERSTOPVELS 
  3426. ai AISPIDERDOWN ASPIDERDOWN SPIDERDOWNVELS
  3427. ai AISPIDERUPP ASPIDERMONTEP SPIDERUP seekplayer
  3428.  
  3429. ai AISPIDERBRULE ASPIDERBRULE SPIDERSTOPVELS faceplayer
  3430.  
  3431.  
  3432. state checkspiderhitstate
  3433.     spawn BLOOD
  3434.     ifdead
  3435.     {
  3436.         state standard_jibs 
  3437.       state random_wall_jibs
  3438.         addkills 1
  3439.         ifwasweapon RADIUSEXPLOSION { sound SQUISHED state delete_enemy }
  3440.         else ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  3441.       ai AISPIDERDYING fall
  3442.       ifwasweapon FREEZEBLAST { spawn BURNING action ASPIDERBRULE }
  3443.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3444.      }
  3445.     else
  3446.     {
  3447.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3448.     ifwasweapon FREEZEBLAST { spawn BURNING }
  3449.       else ifrnd 100 { ai AISPIDERHIT soundonce DRON_DYING }
  3450.         state random_wall_jibs
  3451.     }
  3452. ends
  3453.  
  3454. state checkspiderhitstatep
  3455.     spawn BLOOD
  3456.     ifdead
  3457.     {
  3458.     fall
  3459.     cactor OCTABRAIN
  3460.       ai AISPIDERDYING fall
  3461.       state standard_jibs 
  3462.     state random_wall_jibs
  3463.       addkills 1
  3464.       ifwasweapon RADIUSEXPLOSION { sound SQUISHED state delete_enemy }
  3465.       else ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  3466.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3467.     }
  3468.     else
  3469.     {
  3470.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3471.     soundonce DRON_DYING
  3472.     ifwasweapon FREEZEBLAST { spawn BURNING }
  3473.       state random_wall_jibs
  3474.     ifrnd 64 { cactor OCTABRAIN ai AISPIDERSEEK }
  3475.     }
  3476. ends
  3477.  
  3478. actor PIGCOP 110
  3479. sizeto 30 30
  3480. ifcansee
  3481.     ifaction 0 { soundonce COMM_SPIN ai AISPIDERSEEKP }
  3482.  
  3483.     ifai AISPIDERSEEKP { soundonce OCTA_ROAM ifrnd 4 { ai AISPIDERSTOPP } }
  3484.  
  3485.     ifai AISPIDERSTOPP { ifrnd 50 { ai AISPIDERSEEKP } }
  3486.  
  3487.     ifpdistg 1100 { }
  3488.     else {  ifcanshoottarget { ifrnd 8 { palfrom 32 32 wackplayer addphealth -10 } } }
  3489.  
  3490.     ifrnd 1 { ifrnd 128 { cactor OCTABRAIN ai AISPIDERSEEK } }
  3491.  
  3492.     ifhitweapon { state checkspiderhitstatep }
  3493. enda
  3494.  
  3495.  
  3496. actor OCTABRAIN 110 fall
  3497. sizeto 30 30
  3498. ifcansee
  3499.     ifaction 0 { soundonce COMM_SPIN ai AISPIDERSEEK }
  3500.  
  3501.     ifai AISPIDERSEEKP { ai AISPIDERSEEK }
  3502.     ifai AISPIDERSTOPP { ai AISPIDERSEEK }
  3503.     
  3504.     ifai AISPIDERSEEK
  3505.         {
  3506.         soundonce OCTA_ROAM
  3507.         ifrnd 3 { ai AISPIDERSTOP }
  3508.         }
  3509.  
  3510.     ifai AISPIDERSTOP    { ifrnd 20 { ai AISPIDERSEEK } }
  3511.  
  3512.     ifai AISPIDERDEAD { }
  3513.     else
  3514.     {
  3515.     ifai AISPIDERDYING { }
  3516.     else
  3517.         {
  3518.         ifai AISPIDERUP { }
  3519.         else
  3520.             { 
  3521.             ifai AISPIDERATTACK { }
  3522.             else { ifpdistl 1100 { ai AISPIDERATTACK } }
  3523.             }
  3524.         }
  3525.     }    
  3526.  
  3527.     ifai AISPIDERHIT
  3528.         {
  3529.         ifcount 10
  3530.             {
  3531.             ai AISPIDERSEEK
  3532.             ifspritepal 1 { spritepal 0 }
  3533.             }
  3534.         }
  3535.     
  3536.     ifai AISPIDERATTACK
  3537.         {
  3538.         ifpdistg 1100 { ai AISPIDERSEEK }
  3539.         else ifcanshoottarget { ifrnd 8 { soundonce CAPT_DYING palfrom 32 32 wackplayer addphealth -20 } }
  3540.         }
  3541.  
  3542.     ifai AISPIDERDEAD { }
  3543.     else
  3544.     {
  3545.     ifai AISPIDERDYING { soundonce DRON_JETSND }
  3546.     else
  3547.     {
  3548.     ifp pjetpack { }
  3549.     else
  3550.         {
  3551.         ifp phigher
  3552.             {
  3553.             ifai AISPIDERSTOP { }
  3554.             else { ifcount 80 { ai AISPIDERUP }    }
  3555.             }
  3556.         }
  3557.     }
  3558.     }
  3559.  
  3560.     
  3561.     ifai AISPIDERUP { ifp phigher { } else { ifcount 8 { ai AISPIDERSEEK fall } } }
  3562.  
  3563.     ifai AISPIDERUP { ifp pjetpack { ai AISPIDERSEEK } }
  3564.                 
  3565.     ifai AISPIDERDYING
  3566.         {
  3567.         ifspritepal 1
  3568.             {
  3569.             spawn RECON
  3570.             }
  3571.         ifaction ASPIDERBRULE { ai AISPIDERDEAD fall action ASPIDERBRULE }
  3572.         else
  3573.             {
  3574.             ifcount 12 { spritepal 0 ai AISPIDERDEAD fall }
  3575.             }
  3576.         }
  3577.  
  3578.     ifai AISPIDERDEAD { strength 0 cstat 0 }
  3579.  
  3580.     ifhitweapon state checkspiderhitstate
  3581.  
  3582. enda
  3583.  
  3584.  
  3585.  
  3586.  
  3587.  
  3588.  
  3589. // ********************
  3590. // ****    MECH    ****
  3591. // ********************
  3592.  
  3593.  
  3594. action AMECHWALK      0  4  5  1  30
  3595. action AMECHPREPFIRE  20 3  5  1  40
  3596. action AMECHFIRE      30 2  5  1  7
  3597. action AMECHFIRE2     30 2  5  1  30
  3598. action AMECHDYING     40 8  1  1  18
  3599. action AMECHDEAD      -5 1  5  1
  3600.  
  3601. move MECHWALKVELS 170
  3602. move MECHSTOPVELS 0
  3603.  
  3604. ai AIMECHDYING AMECHDYING MECHSTOPVELS
  3605. ai AIMECHWALK AMECHWALK MECHWALKVELS randomangle
  3606. ai AIMECHPREPFIRE AMECHPREPFIRE MECHSTOPVELS faceplayer
  3607. ai AIMECHFIRE AMECHFIRE MECHSTOPVELS faceplayerslow
  3608. ai AIMECHFIRE2 AMECHFIRE2 MECHSTOPVELS faceplayerslow
  3609. ai AIMECHSEARCH AMECHWALK MECHWALKVELS seekplayer
  3610. ai AIMECHDWALK AMECHWALK MECHWALKVELS randomangle
  3611. ai AIMECHDPREPFIRE AMECHPREPFIRE MECHSTOPVELS faceplayer
  3612. ai AIMECHDFIRE AMECHFIRE MECHSTOPVELS faceplayerslow
  3613. ai AIMECHDFIRE2 AMECHFIRE2 MECHSTOPVELS faceplayerslow
  3614. ai AIMECHDSEARCH AMECHWALK MECHWALKVELS seekplayer
  3615.  
  3616.  
  3617. state mechhitstate
  3618.     ifdead
  3619.     {
  3620.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3621.     ifai AIMECHWALK { ai AIMECHDWALK strength 1000 cactor BOSS3 }
  3622.     else
  3623.         {
  3624.         ifai AIMECHSEARCH { ai AIMECHDWALK strength 1000 cactor BOSS3 }
  3625.         else
  3626.             {
  3627.             ifai AIMECHFIRE { ai AIMECHDWALK strength 1000 cactor BOSS3 }
  3628.             else
  3629.                 {
  3630.                 ifai AIMECHFIRE2    { ai AIMECHDWALK strength 1000 cactor BOSS3 }
  3631.                 else
  3632.                     {
  3633.                     ifai AIMECHPREPFIRE { ai AIMECHDWALK strength 1000 cactor BOSS3 }
  3634.                     else
  3635.                         {
  3636.                         addkills 1
  3637.                         spawn EXPLOSION2
  3638.                         spawn BURNING
  3639.                         debris SCRAP2 4
  3640.                         debris SCRAP1 4
  3641.                         debris SCRAP3 4
  3642.                         sound RPG_EXPLODE
  3643.                         hitradius 1548 10 20 30 40 
  3644.                         ai AIMECHDYING
  3645.                         }
  3646.                     }
  3647.                 }
  3648.             }
  3649.         }
  3650.     }
  3651.     else
  3652.     {
  3653.     ifrnd 128 {    soundonce COMM_PAIN }
  3654.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3655.     else { soundonce COMM_DYING }
  3656.     debris SCRAP2 1
  3657.     }
  3658. ends
  3659.  
  3660. actor BOSS3 3000 fall
  3661. ifspritepal 3 { sizeto 75 75 }
  3662. ifcansee
  3663. ifaction 0 { ifspritepal 3 { strength 10 } soundonce BOS3_RECOG ai AIMECHWALK }
  3664.  
  3665. ifaction AMECHDEAD { }
  3666. else { ifai AIMECHDYING { ifactioncount 8 { action AMECHDEAD spawn LIZTROOP } } }
  3667.  
  3668. ifai AIMECHWALK
  3669.     {
  3670.     ifspritepal 3 { }
  3671.     else { ifrnd 1 { spawn SHARK } }
  3672.     ifactioncount 1 { soundonce BOS3_ROAM }
  3673.     ifactioncount 2 { soundonce BOS3_PAIN }
  3674.     ifactioncount 3 { soundonce BOS3_ROAM }
  3675.     ifactioncount 4 { soundonce BOS3_PAIN resetactioncount }
  3676.     ifcansee { ifrnd 3 { ai AIMECHPREPFIRE resetactioncount } }
  3677.     else { ifrnd 6 { ai AIMECHSEARCH } }
  3678.     }
  3679.  
  3680. ifai AIMECHSEARCH
  3681.     {
  3682.     ifactioncount 1 { soundonce BOS3_ROAM }
  3683.     ifactioncount 2 { soundonce BOS3_PAIN }
  3684.     ifactioncount 3 { soundonce BOS3_ROAM }
  3685.     ifactioncount 4 { soundonce BOS3_PAIN resetactioncount }
  3686.     ifrnd 1
  3687.         {
  3688.         ifspritepal 3 { }
  3689.         else { spawn SHARK }
  3690.         }
  3691.     ifcansee { ifrnd 3 { ai AIMECHPREPFIRE resetactioncount } }
  3692.     }
  3693.  
  3694. ifai AIMECHPREPFIRE
  3695.     {
  3696.     ifactioncount 3
  3697.         {
  3698.         ifrnd 128 { ai AIMECHFIRE }
  3699.         else
  3700.             {
  3701.             ifrnd 100 { ai AIMECHFIRE }
  3702.             else { ai AIMECHFIRE2 }
  3703.             }
  3704.         }
  3705.     }
  3706.  
  3707. ifaction AMECHDEAD { }
  3708. else { ifpdistl 1000 { addphealth -100 } }
  3709.  
  3710. ifai AIMECHFIRE2
  3711.     {
  3712.     ifactioncount 2    
  3713.         {
  3714.         shoot RPG
  3715.         resetactioncount
  3716.         }
  3717.     ifrnd 3 { ai AIMECHWALK }
  3718.     } 
  3719.  
  3720. ifai AIMECHFIRE
  3721.     {
  3722.     ifactioncount 2    
  3723.         {
  3724.         sound BOS3_ATTACK1 shoot FIRELASER shoot FIRELASER shoot FIRELASER
  3725.         resetactioncount
  3726.         }
  3727.     ifrnd 3 { ai AIMECHWALK }
  3728.     } 
  3729.  
  3730. ifai AIMECHDWALK
  3731.     {
  3732. //    ifrnd 20 { spawn EXPLOSION2 }
  3733.     ifspritepal 3 { }
  3734.     else { ifrnd 1 { spawn SHARK } }
  3735.     ifrnd 3 { ifcansee { ai AIMECHDPREPFIRE resetactioncount } }
  3736.     else { ifrnd 6 { ai AIMECHDSEARCH } }
  3737.     }
  3738.  
  3739. ifai AIMECHDSEARCH
  3740.     {
  3741. //    ifrnd 20 { spawn EXPLOSION2 }
  3742.     ifrnd 1 { spawn SHARK }
  3743.     ifrnd 3 { ifcansee { ai AIMECHDPREPFIRE resetactioncount } }
  3744.     }
  3745.  
  3746. ifai AIMECHDPREPFIRE
  3747.     {
  3748. //    ifrnd 20 { spawn EXPLOSION2 }
  3749.     ifactioncount 3
  3750.         {
  3751.         ifrnd 128 { ai AIMECHDFIRE }
  3752.         else
  3753.             {
  3754.             ifrnd 100 { ai AIMECHDFIRE }
  3755.             else { ai AIMECHDFIRE2 }
  3756.             }
  3757.         }
  3758.     }
  3759.  
  3760.  
  3761. ifai AIMECHDFIRE2
  3762.     {
  3763. //    ifrnd 20 { spawn EXPLOSION2 }
  3764.     ifactioncount 2    
  3765.         {
  3766.         shoot RPG
  3767.         resetactioncount
  3768.         }
  3769.     ifrnd 3 { ai AIMECHDWALK }
  3770.     } 
  3771.  
  3772. ifai AIMECHDFIRE
  3773.     {
  3774. //    ifrnd 20 { spawn EXPLOSION2 }
  3775.     ifactioncount 2    
  3776.         {
  3777.         soundonce BOS3_ATTACK1 shoot FIRELASER shoot FIRELASER shoot FIRELASER
  3778.         resetactioncount
  3779.         }
  3780.     ifrnd 3 { ai AIMECHDWALK }
  3781.     } 
  3782.  
  3783.     ifhitweapon state mechhitstate
  3784.  
  3785.  
  3786. enda
  3787.  
  3788.  
  3789.  
  3790. // ********************
  3791. // ****  SCREAMER  ****
  3792. // ********************
  3793.  
  3794. action SCREAMERFLY     1720  1   7   1   10
  3795. action SCREAMERFIRE     1727  1   7   1   10
  3796. action SCREAMERUPFLY    1810  1   7   1   10
  3797. action SCREAMERUPFIRE   1817  1   7   1   10
  3798.  
  3799. move SCREAMERFLYVELS  320  100 
  3800. move SCREAMERTURNVELS 320
  3801. move SCREAMERUPVELS   320 -100
  3802. move SCREAMERDOWNVELS 320 100
  3803. move SCREAMERDEADVELS 320 450
  3804. move SCREAMERSTOPVELS 0 0
  3805.  
  3806. move SCREAMERFLYVELSW  100 75 
  3807. move SCREAMERTURNVELSW 100
  3808. move SCREAMERUPVELSW   100 -75
  3809. move SCREAMERDOWNVELSW 100 75
  3810. move SCREAMERDEADVELSW 100 75
  3811. move SCREAMERSTOPVELSW 0   0
  3812.  
  3813. ai AISCREAMERFLY SCREAMERFLY SCREAMERFLYVELS faceplayerslow
  3814. ai AISCREAMERFLYUP SCREAMERUPFLY SCREAMERUPVELS faceplayerslow
  3815. ai AISCREAMERFLY2 SCREAMERFLY SCREAMERFLYVELS faceplayerslow
  3816. ai AISCREAMERTURN SCREAMERFLY SCREAMERTURNVELS randomangle
  3817. ai AISCREAMERFLEE SCREAMERUPFLY SCREAMERUPVELS randomangle
  3818. ai AISCREAMERDEAD SCREAMERFLY SCREAMERDEADVELS randomangle
  3819. ai AISCREAMERFIRE SCREAMERFIRE SCREAMERTURNVELS faceplayerslow
  3820. ai AISCREAMERUPFIRE SCREAMERUPFIRE SCREAMERUPVELS faceplayerslow
  3821.  
  3822. state checkscreamerhitstate
  3823.     ifdead
  3824.     {
  3825.         addkills 1
  3826.         spawn EXPLOSION2
  3827.         sound RPG_EXPLODE
  3828.         hitradius 1548 10 20 30 40
  3829.     ifai AISCREAMERDEAD { }
  3830.     else
  3831.         {
  3832.         ai AISCREAMERDEAD
  3833.         ifinwater { move SCREAMERFLYVELSW randomangle }
  3834.         }
  3835.     ifwasweapon RPG { killit }
  3836.       ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3837.  
  3838.     }
  3839.     else
  3840.     {
  3841.        ifwasweapon SHRINKSPARK { spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE spawn PIGCOPDIVE }
  3842.     ifwasweapon RPG { killit }
  3843.     else
  3844.     {
  3845.  
  3846.     ifinwater
  3847.             {
  3848.             ai AISCREAMERFLY2
  3849.             move SCREAMERFLYVELSW faceplayerslow
  3850.             }
  3851.     else { ai AISCREAMERFLY2 }
  3852.  
  3853.     debris SCRAP2 1
  3854.     ifrnd 128 {    soundonce COMM_PAIN }
  3855.     else { soundonce COMM_DYING }
  3856.     }
  3857.     }
  3858. ends
  3859.  
  3860. actor COMMANDER 65
  3861. soundonce COMM_ROAM
  3862. ifcansee
  3863.     ifaction 0
  3864.     {
  3865.     ai AISCREAMERFLY
  3866.     ifinwater { move SCREAMERFLYVELSW faceplayerslow }
  3867.     }
  3868.  
  3869.     ifpdistl 3000 { soundonce BOS3_ATTACK2 }
  3870.  
  3871.     ifai AISCREAMERDEAD
  3872.         { 
  3873.         ifinwater
  3874.             {
  3875.             ifrnd 128 { spawn SMALLSMOKE }
  3876.             iffloordistl 20
  3877.                 {
  3878.                 spawn EXPLOSION2
  3879.                  debris SCRAP1 8
  3880.                   debris SCRAP2 6
  3881.                      debris SCRAP3 7
  3882.                 sound RPG_EXPLODE
  3883.                 hitradius 1500 10 20 30 40
  3884.                 killit
  3885.                 }
  3886.             }
  3887.         else
  3888.             {
  3889.             ifrnd 128 { spawn SMALLSMOKE }
  3890.             ifrnd 32 { fall }
  3891.             iffloordistl 20
  3892.                 {
  3893.                 spawn BURNING
  3894.                 spawn EXPLOSION2
  3895.                  debris SCRAP1 8
  3896.                   debris SCRAP2 6
  3897.                      debris SCRAP3 7
  3898.                 sound RPG_EXPLODE
  3899.                 hitradius 1500 10 20 30 40
  3900.                 killit
  3901.                 }
  3902.             }
  3903.         }
  3904.  
  3905.     ifai AISCREAMERDEAD { }
  3906.     else
  3907.         {
  3908.         ifpdistg 3000 { }
  3909.         else
  3910.             {
  3911.             ifinwater
  3912.                 {
  3913.                 ai AISCREAMERFLEE
  3914.                 move SCREAMERUPVELSW randomangle
  3915.                 }
  3916.             else { ai AISCREAMERFLEE }
  3917.             }
  3918.         }    
  3919.  
  3920.     ifai AISCREAMERFLY2
  3921.     {
  3922.     ifinwater
  3923.         {
  3924.         ifp phigher
  3925.             {
  3926.             ai AISCREAMERFLEE
  3927.             move SCREAMERUPVELSW randomangle
  3928.             }
  3929.         ifrnd 8
  3930.             {
  3931.             ai AISCREAMERFIRE
  3932.             move SCREAMERTURNVELSW faceplayerslow
  3933.             }
  3934.         }
  3935.     else
  3936.         {
  3937.         ifrnd 64 { spawn SMALLSMOKE }
  3938.         ifp phigher { ai AISCREAMERFLEE }
  3939.         ifrnd 8 { ai AISCREAMERFIRE }
  3940.         }
  3941.     }
  3942.  
  3943.     ifai AISCREAMERFLY
  3944.     {
  3945.     ifinwater
  3946.         {
  3947.             ifp phigher
  3948.                 {
  3949.                 ai AISCREAMERFLEE
  3950.                 move SCREAMERUPVELSW randomangle
  3951.                 }
  3952.             ifrnd 8
  3953.                 {
  3954.                 ifp phigher
  3955.                     {
  3956.                     ai AISCREAMERUPFIRE
  3957.                     move SCREAMERUPVELSW faceplayerslow
  3958.                     }
  3959.                 else
  3960.                     {
  3961.                     ai AISCREAMERFIRE
  3962.                     move SCREAMERTURNVELSW faceplayerslow 
  3963.                     }
  3964.                 }
  3965.         }
  3966.     else
  3967.         {
  3968.             ifp phigher { ai AISCREAMERFLEE }
  3969.             ifrnd 8
  3970.                 {
  3971.                 ifp phigher { ai AISCREAMERUPFIRE }
  3972.                 else { ai AISCREAMERFIRE }
  3973.                 }
  3974.         }
  3975.     }
  3976.  
  3977.     ifai AISCREAMERFIRE
  3978.     {
  3979.     ifcount 5 { sound COMM_ATTACK shoot FIRELASER }
  3980.     ifcount 10
  3981.         {
  3982.         ifinwater
  3983.             {
  3984.             ai AISCREAMERTURN
  3985.             move SCREAMERTURNVELSW randomangle
  3986.             }
  3987.         else { ai AISCREAMERTURN }
  3988.         }
  3989.     }
  3990.  
  3991.     ifai AISCREAMERUPFIRE
  3992.     {
  3993.     ifcount 5 {    sound COMM_ATTACK shoot FIRELASER }
  3994.     ifcount 10
  3995.         {
  3996.         ifinwater
  3997.             {
  3998.             ai AISCREAMERTURN
  3999.             move SCREAMERTURNVELSW randomangle
  4000.             }
  4001.         else { ai AISCREAMERTURN }
  4002.         }
  4003.     }
  4004.  
  4005.     ifai AISCREAMERFLEE
  4006.         {
  4007.         ifinwater
  4008.             {
  4009.             ifrnd 4
  4010.                 {
  4011.                 ai AISCREAMERTURN
  4012.                 move SCREAMERTURNVELSW randomangle
  4013.                 }
  4014.             }
  4015.         else { ifrnd 8 { ai AISCREAMERTURN } }
  4016.         }
  4017.  
  4018.     ifai AISCREAMERTURN
  4019.         {
  4020. //        ifcount 10
  4021.             {
  4022.             ifinwater
  4023.                 {
  4024.                 ifp phigher
  4025.                     {
  4026.                     ai AISCREAMERFLYUP
  4027.                     move SCREAMERUPVELSW faceplayerslow
  4028.                     }
  4029.                 ifcount 50
  4030.                     {
  4031.                     ai AISCREAMERFLY
  4032.                     move SCREAMERFLYVELSW faceplayerslow
  4033.                     }
  4034.                 }
  4035.             else
  4036.                 {
  4037.                     ifp phigher { ai AISCREAMERFLYUP }
  4038.                 ifcount 32
  4039.                     { ai AISCREAMERFLY }
  4040.                 }
  4041.             }
  4042.         }
  4043.  
  4044.     ifai AISCREAMERFLYUP
  4045.         {
  4046.         ifinwater
  4047.             {
  4048.             ifrnd 8
  4049.                 {
  4050.                 ifp phigher
  4051.                     {
  4052.                     ai AISCREAMERUPFIRE
  4053.                     move SCREAMERUPVELSW faceplayerslow
  4054.                     }
  4055.                 else
  4056.                     {
  4057.                     ai AISCREAMERFIRE
  4058.                     move SCREAMERTURNVELSW faceplayerslow
  4059.                     }
  4060.                 }
  4061.             }
  4062.          else
  4063.             {
  4064.             ifrnd 8
  4065.                 {
  4066.                 ifp phigher { ai AISCREAMERUPFIRE }
  4067.                 else { ai AISCREAMERFIRE }
  4068.                 }
  4069.             }
  4070.         }
  4071.  
  4072.     ifhitweapon state checkscreamerhitstate
  4073.  
  4074. enda
  4075.  
  4076.  
  4077.  
  4078.